gpt4 book ai didi

javascript - Node - 如何在 POST 路由中间件中访问 Req

转载 作者:行者123 更新时间:2023-11-30 12:53:24 25 4
gpt4 key购买 nike

我是 Node 和 Express 的新手,我不确定如何在 POST 路由的中间件函数中访问 req。我需要把它作为参数传入吗?此路由中还有其他访问 req 的中间件函数,但未传入。总的来说,我想我对 req 的工作方式感到困惑。 .

我指的函数是helpers.createPermissions()

我的路线

app.post('/oauth/authorize/decision', login.ensureLoggedIn('connect/signin'), helpers.createPermissions(req), oauth2.server.decision());

函数

exports.createPermissions = function(req) {
console.log(req);
};

错误

ReferenceError: req is not defined

最佳答案

中间件总是会传递三个参数:reqresnext

所以你的中间件应该是这样的:

exports.createPermissions = function(req, res, next) {
console.log(req);
// TODO: make sure you eventually call either `next` or send back a response...
};

你可以这样使用它:

app.post('/oauth/authorize/decision', login.ensureLoggedIn('connect/signin'), helpers.createPermissions, oauth2.server.decision());

在您看到中间件作为函数被调用的情况下,这是因为您不是在调用中间件本身,而是在返回中间件函数的函数。例如:

var myMiddlewareWrapper = function() {
// return the actual middleware handler:
return function(req, res, next) {
...
};
};

app.get('/', myMiddlewareWrapper(), ...);

这通常是为了将额外的选项传递给中间件处理程序(例如 login.ensureLoggedIn())。

关于javascript - Node - 如何在 POST 路由中间件中访问 Req,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20179383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com