使用中间件时NodeJS next不是函数错误

ix0qys7i  于 2023-02-18  发布在  Node.js
关注(0)|答案(1)|浏览(218)

我正在观看this视频,以在NodeJS(v16.19.0)和ExpressJS(v4.18.2)中创建一个简单的服务器。
app.js

const express = require("express");
const app = express();

// Middleware

const middleware = (req, res, next) => {
  console.log(`Hello my middleware`);
  next();                                   //error on this line: next is not a function
}

middleware();

app.get("/", (req, res) => {
  res.send(`Hello world from server`);
});

app.listen(3000, () => {
  console.log("server runnin at port 3000");
});

错误:当我运行app.js时,next不是一个函数。如何解决这个问题

daupos2t

daupos2t1#

您遇到的错误是因为您定义的中间件函数被作为常规函数调用,而不是作为Express路由中的中间件使用。下一个函数由Express提供,允许您将控制传递给链中的下一个中间件函数或路由处理程序。
要使用中间件功能,需要将其连接到快速路由,如下所示:

const express = require("express");
const app = express();

// Middleware
const middleware = (req, res, next) => {
  console.log(`Hello my middleware`);
  next();
};

app.use(middleware);

app.get("/", (req, res) => {
  res.send(`Hello world from server`);
});

app.listen(3000, () => {
  console.log("server runnin at port 3000");
});

相关问题