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;
我得到了这个中间件。
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
.
就在处理您的路线之前。
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;