在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 });
不,如果不重写或重构代码,这是不可能的。 原因是res.send
在res.end
后实际调用res.end
。 这结束了答复,没有什么可以写的。
正如你所暗示的那样,你可以通过重构代码来实现预期的效果,以使/mycall1
和/mycall2
内部调用独立的函数,而/myAggregate
调用这两个函数。
在这些函数中,您将不得不使用res.write
来防止结束响应。 /mycall1
, /mycall2
和/myAggregate
的处理程序将分别调用res.end
来实际结束响应。