gpt4 book ai didi

javascript - Node 异步路由代码

转载 作者:数据小太阳 更新时间:2023-10-29 04:44:10 25 4
gpt4 key购买 nike

我正在使用带有 express 4.0 的 Node 。我在互联网上找不到任何关于在路由中嵌入异步代码的信息(包括文档)。

有了中间件就很简单了:

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

routes 的问题是没有next 回调,express 怎么知道什么时候移动到下一个job?

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

如果非要我猜的话,我会说 express 在上述函数退出后立即移动到下一个任务。但出于好奇,我启动了以下代码......

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

...实际上有一些 next 回调被传递了。那么这是怎么回事?它是如何在幕后运作的?以及如何将异步代码放在那里?

最佳答案

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

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

但是根据你在这里问的。在 res 对象上调用 render() 的那一刻,将发送数据并关闭套接字。

关于javascript - Node 异步路由代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24980991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com