Express中间件问题回调问题

Express middleware issue callback issue

我得到了这个中间件。

const validateInput = (req, res, next) => {
 return console.log(req.body);
};

当我 运行 我的服务器出现此错误时:

Error: Route.post() requires a callback function but got a [object Undefined]

如果我将中间件更改为 return 函数,如下所示:

const validateInput = (req, res, next) => {
 return () => console.log(req.body);
};

它 运行 但是 console.log 打印 undefined

关于这里的明示规则,我遗漏了什么? (要清楚,这个之前的中间件确实有一个 next() 应该通过 req

你为什么return?如果你能给出调试的路由部分。

如果你这样使用?

  const middleware = (req, res, next) => {
    console.log(req.body)
    next();
  };
  route.get('/' middleware, controller);

在访问 request body.

的正文解析版本之前,您需要使用 express 的正文解析器中间件

就在处理您的路线之前。

app.js

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

app.use(express.json()); //<-- you will need express.json() middleware

app.use(require('./server/index')); //<-- here my routes middlewares are declared.

module.exports = app;