最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

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

运维笔记admin12浏览0评论

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

在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/mycall2的代码怎么办?

例如:

app.get('/myAggregate', function (req, res) {
  // call /mycall1
  // call /mycall2  
});
回答如下:

不,如果不重写或重构代码,这是不可能的。原因是res.send actually calls res.end after it is done writing。这样就结束了回应,没有更多的东西可以写出来。

正如您所暗示的那样,您可以通过重构代码来实现所需的效果,以便/mycall1/mycall2在内部调用单独的函数,并且/myAggregate调用这两个函数。

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

发布评论

评论列表(0)

  1. 暂无评论