javascript – 节点异步路由代码

前端之家收集整理的这篇文章主要介绍了javascript – 节点异步路由代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Express 4.0节点.我在网上(包括文档)找不到有关在路由中嵌入异步代码的任何内容.

使用中间件非常简单:

app.use('/something',function (req,res,next)
{
  doSomethingAsync(function(err,probablySomethingElse)
  {
    // probably some error checking
    next();
  });
});

路线的问题是没有下一个回调,那么快递如何知道何时转移到下一个工作?

app.get('/something',res)
{
  res.render('someTemplate');
  // no next() here,but it still works
});

如果我不得不猜测,我会说在上述功能退出后,快速移动到下一个任务.但出于好奇,我推出了以下代码……

app.get('/something',next)
{
  console.log(next);
});

……实际上还有一些下一个回调通过了.那么这里发生了什么?它在幕后如何运作?我怎样才能将异步代码放在那里?

解决方法

Express将等到您调用res.render关闭套接字.这意味着您可以将res.render传递给一个需要X秒执行的回调,并且一切仍然有效.

下一个允许您转到映射您的值的下一个路线,您可以在这里找到一个非常好的解释:What is the parameter “next” used for in Express?

但根据你在这里问的问题.在res对象上调用render(),然后发送数据并关闭套接字.

猜你在找的JavaScript相关文章