📜  何时在 Node.js 中使用 next() 并返回 next() ?

📅  最后修改于: 2022-05-13 01:56:39.087000             🧑  作者: Mango

何时在 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、 responsenext

所以,如果你想使用 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")
})


输出 :

  1. next():在浏览器中点击“http://localhost:5000/next”

    此处next()下方的行已成功执行,输出中显示“你仍然在这里”。

  2. return next():在浏览器中点击“http://localhost:5000/return-next”

    这里没有执行return next()下面的行,并且输出中没有显示“ you are still here ”。