何时在 Node.js 中使用 next() 并返回 next() ?
在这篇文章中,我们将看到在 NodeJS 中何时使用next()并返回 next() 。
特征:
- next() :在所有中间件函数完成后运行或执行代码。
- return next() :使用 return next 会立即跳出回调,return next() 下面的代码将无法访问。
句法:
next()
return next()
app.use((req, res, next) => {
//next() or return next()
});
在函数app.use((req, res, next) 中,我们有三个回调,即request、 response和next 。
所以,如果你想使用 next(),那么只需编写next() ,如果你想使用 return next,那么只需编写return next()。
让我们通过一个例子来理解这两个。
使用 next():如果你有任何中间件函数,并且在next()之下你有一些你想要执行的行或函数,那么通过使用next()你可以实际执行这些行或函数,因为它运行下面的代码next ()所有中间件函数完成后。
使用return next():如果你有任何中间件函数并且在return next()下面你有一些你想要执行的行,那么return next()下面的行将不会被执行,因为它会跳出立即回调,回调中的return next()下面的代码将无法访问。
示例:设置环境
npm init -y
- 安装依赖项
npm install express
Javascript
import express from "express"
const app = express()
// API for the testing of next()
app.get(
'/next', function (req,res,next) {
console.log('hi there ');
next();
console.log('you are still here');
}
)
// API for the testing of return next()
app.get(
'/return-next', function (req,res,next) {
console.log('hi there');
return next();
console.log('you are still here');
}
)
app.listen(5000,()=> {
console.log("App is running on port 5000")
})
输出 :
- next():在浏览器中点击“http://localhost:5000/next” 。
此处next()下方的行已成功执行,输出中显示“你仍然在这里”。
- return next():在浏览器中点击“http://localhost:5000/return-next” 。
这里没有执行return next()下面的行,并且输出中没有显示“ you are still here ”。