gpt4 book ai didi

javascript - 'res.json(..)' 和 'return res.json(..)' 之间的 Nodejs 区别

转载 作者:行者123 更新时间:2023-11-30 08:31:15 25 4
gpt4 key购买 nike

我正在学习 Nodejs,但我并不完全理解返回值。例如,在许多情况下,建议返回 next() 以确保执行在触发后停止(Reference)。但是,对于像简单响应这样的情况,是否需要 return,有什么区别,什么是首选:

res.json({ message: 'Invalid access token' });

对比

return res.json({ message: 'Invalid access token' });

最佳答案

返回用于停止执行。它通常用于根据条件进行某种形式的提前返回。

忘记返回通常会导致函数继续执行而不是返回。这些示例是典型的 express 中间件示例。

如果中间件函数是这样的:

function doSomething(req, res, next){
return res.json({ message: 'Invalid access token' });
}

结果行为将与以下内容完全相同:

function doSomething(req, res, next){
res.json({ message: 'Invalid access token' });
}

但这种模式经常被实现:

function doSomething(req, res, next){
if(token.isValid){
return res.json({ message: 'Invalid access token' }); // return is very important here
}
next();
}

正如您在此处看到的那样,当返回被忽略并且标记被激活时,该函数将调用 res.json() 方法,然后继续执行 next() 方法,这不是预期的行为。

关于javascript - 'res.json(..)' 和 'return res.json(..)' 之间的 Nodejs 区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37726863/

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