[英]Node - How To Access Req in POST Route Middleware
我是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
中間件總是會傳遞三個參數: req
, res
和next
。
所以你的中間件應該是這樣的:
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()
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.