在Express或与Node.js连接,有没有办法在内部调用另一个路由?

所以,我有这样的设置(在Express中):

app.get('/mycall1', function(req,res) { res.send('Good'); }); app.get('/mycall2', function(req,res) { res.send('Good2'); }); 

如果我想让一个聚合函数调用/mycall1/mycall2而不重写代码/mycall1/mycall1/mycall2代码?

例如:

 app.get('/myAggregate', function (req, res) { // call /mycall1 // call /mycall2 }); 

       

网上收集的解决方案 "在Express或与Node.js连接,有没有办法在内部调用另一个路由?"

不,如果不重写或重构代码,这是不可能的。 原因是res.sendres.end后实际调用res.end 。 这结束了答复,没有什么可以写的。

正如你所暗示的那样,你可以通过重构代码来实现预期的效果,以使/mycall1/mycall2内部调用独立的函数,而/myAggregate调用这两个函数。

在这些函数中,您将不得不使用res.write来防止结束响应。 /mycall1/mycall2/myAggregate的处理程序将分别调用res.end来实际结束响应。