📜  Express.js 中的 next()函数有什么用?

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

Express.js 中的 next()函数有什么用?

Express.js 是一个强大的 node.js 框架。该框架的主要优点之一是定义不同的路由或中间件来处理客户端的不同传入请求。在本文中,我们将讨论在 express.js 的每个中间件中使用 next()函数。

Express.js 中有很多中间件函数,比如 Express.js app.use()函数等等。 app.use()中间件基本上用于定义客户端发出的特定请求的处理程序。

句法:

app.use(path,(req,res,next))

参数:它接受上面提到的两个参数,如下所述:

  • path:它是调用中间件函数的路径。它可以是表示路径或路径模式的字符串,也可以是匹配路径的正则表达式模式。
  • callback:是回调函数,包含请求对象、响应对象和 如果当前中间件的响应没有终止,则 next()函数调用下一个中间件函数。在第二个参数中,我们也可以传递中间件的函数名。

安装模块:使用以下命令安装 express 模块。

npm install express

项目结构:它看起来像这样。

示例 1:没有 next()函数的服务器

文件名:index.js

Javascript
// Importing the express module
const express = require("express");
const app = express()
 
// Creating First Middleware
app.use("/", (req, res, next) => {
    console.log("Hello");
    // There is no next() function calls here
})
 
// Creating second middleware
app.get("/", (req, res, next) => {
    console.log("Get Request")
})
 
// Execution the server
app.listen(3000, () => {
    console.log("Server is Running")
})


Javascript
// Importing the express module
const express = require("express");
const app = express()
 
// Creating First Middleware
app.use("/", (req, res, next) => {
    console.log("Hello");
    // The next() function called
    next();
})
 
// Creating second middleware
app.get("/", (req, res, next) => {
    console.log("Get Request")
})
 
// Execution the server
app.listen(3000, () => {
    console.log("Server is Running")
})


使用以下命令运行index.js文件:

node index.js

输出:如果没有 next()函数,即使它们请求相同的路径,中间件也不会调用下一个中间件

Server is Running
Hello

示例 2:具有 next()函数的服务器

文件名:index.js

Javascript

// Importing the express module
const express = require("express");
const app = express()
 
// Creating First Middleware
app.use("/", (req, res, next) => {
    console.log("Hello");
    // The next() function called
    next();
})
 
// Creating second middleware
app.get("/", (req, res, next) => {
    console.log("Get Request")
})
 
// Execution the server
app.listen(3000, () => {
    console.log("Server is Running")
})

使用以下命令运行index.js文件:

node index.js

输出:

Server is Running
Hello
Get Request