微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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(),然后发送数据并关闭套接字.

原文地址:https://www.jb51.cc/js/156606.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐