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

mur*_*lai 6 routes node.js express

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

app.get('/mycall1', function(req,res) { res.send('Good'); });
app.get('/mycall2', function(req,res) { res.send('Good2'); });
Run Code Online (Sandbox Code Playgroud)

如果我想调用聚合函数/mycall1并且/mycall2不重写代码并重用代码/mycall1并且/mycall2

例如:

app.get('/myAggregate', function (req, res) {
  // call /mycall1
  // call /mycall2  
});
Run Code Online (Sandbox Code Playgroud)

Roh*_*ngh 7

不,如果不重写或重构代码,这是不可能的.原因是在完成写入后res.send实际调用res.end.这样就结束了回应,没有更多的东西可以写出来.

当你暗示,你可以通过重构代码达到预期的效果,这样既/mycall1/mycall2内部调用独立的函数,并/myAggregate调用这两个功能.

在这些函数中,您必须使用res.write以防止结束响应.处理程序for /mycall1,/mycall2/myAggregate将分别调用res.end以实际结束响应.