gpt4 book ai didi

javascript - 在 Express 中间件中提供自定义参数

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

我的 Node.js 应用程序有问题。简而言之,我想将自定义参数传递到我的中间件函数中,而不仅仅是 reqresnext

中间件文件:

var DB = require('./DB.js');

function requirePermissions(e) {
console.log('nope')
}

module.exports = requirePermissions;

路线:

router.post('/posts', requirePermissions('post_creation'), function(req, res)       {
var o = req.body,
title = o.post.title,
content = o.post.content;

res.send('made it');
});

我已经确认使用函数 requirePermissions(req, res, next) {} 会起作用,但我不明白如何包含我自己的参数。

最佳答案

您的函数 requirePermissions 应该返回另一个函数,它将成为实际的中间件:

function requirePermissions(e) {
if (e === 'post_creation') {
return function(req, res, next) {
// the actual middleware
}
} else if (e === 'something_else') {
return function(req, res, next) {
// do something else
}
}
}

你也可以这样做:

function requirePermissions(e) {
return function(req, res, next) {
if ('session' in req) {
if (e === 'post_creation') {
// do something
} else if (e === 'something_else') {
// do something else
}
}
}
}

关于javascript - 在 Express 中间件中提供自定义参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39004477/

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