【发布时间】:2020-10-05 13:43:44
【问题描述】:
我需要在我的 middleware.js 文件中添加一个新的重复电子邮件控制进程。 这是我的 middleware.js 节点文件:
module.exports = {
requiresLoggedIn(req, res, next) {
if (!req.session.loggedIn) {
console.log(" FORBIDDEN CAUSE YOU ARE NOT LOGGED IN ")
res.status(403).send({
errorCode: "403"
})
return
} else {
next() // continue the process
}
},
permission_valid(permission) {
return function(req, res, next) {
if (!req.session.user.permissions.includes(permission)) {
console.log(" FORBIDDEN CAUSE THE PERMISSION IS MISSING ")
res.status(403).send({
errorCode: "403"
})
return
} else {
next() // continue the process
}
}
},
duplicate_email(db, email) {
db.collection("users").findOne({
'email': email
}, function(findErr, result) {
if (!result) {
// next() // continue the process
return false;
} else {
return true;
}
});
}
}
duplicate_email() 不起作用,因为我的 middleware.js 文件中没有 db.collection 访问权限,我尝试了异步等待,我尝试了很多东西.
我已经尝试将我的中间件更改为这种格式:
module.exports = function(app, db) {
function requiresLoggedIn(req, res, next) {
if (!req.session.loggedIn) {
console.log(" FORBIDDEN CAUSE YOU ARE NOT LOGGED IN ")
res.status(403).send({
errorCode: "403"
})
return
} else {
next() // continue the process
}
}
}
但只要我这样做,requiresLoggedIn(req, res, next) 和 permission_valid(permission) 将不再在 Web 服务中工作,请不要不知道为什么:
这是我的工作网络服务之一,请问我如何将电子邮件复制控制中间件添加到它们? :
app.post("/createUser", middleware.requiresLoggedIn, middleware.permission_valid("CREATE_USER"), function(req, res) {
这是我应该拥有的,但它不起作用:
app.post("/createUser", middleware.requiresLoggedIn, middleware.permission_valid("CREATE_USER"),middleware.duplicate_email(db, req.body.email), function(req, res) {
如果你能帮助我一些,我将不胜感激,谢谢。
【问题讨论】:
标签: node.js express middleware