猫鼬添加到中间件

时间:2018-10-10 11:45:35

标签: javascript node.js callback

我不确定这是Mongoose还是Nodejs Express错误?

我只想知道是否有一种以if的形式添加中间件的方法。这是我的电话:

app.post(pPath, auth, (req, res) => {
    ...
})

我只想做这样的事情:

app.post(pPath, varBoolean ? auth : null, (req, res) => {
    ...
})

上面的示例虽然无效。知道我该怎么做吗?

2 个答案:

答案 0 :(得分:1)

Express方法不支持非函数处理程序。通常这是一件好事,因为它可以在应用程序启动时检测到导入问题。

这可以通过传播来实现:

app.post(...[pPath, varBoolean && auth, (req, res) => {
    ...
}].filter(Boolean))

答案 1 :(得分:0)

如果要使用中间件,则应尝试使用“ app.use”。

app.use('/path', (req, res, next) => {
const { test } = req.body;
const { auth } = req.headers;
if(!test) {
return res.status(400).json({message: 'Missing field test'});
}
const validToken = await tokenValidation(auth);
if(!validToken){
return res.status(403).json({message: 'Unauthorized'});
}
next();
});