0
我想在nodejs,express和mongodb中自己做一个OAuth身份验证流程。我正试图在每个路由之前检查客户端是否在我的MongoDB中可用。所以我做了一个中间件功能,检查客户端ID和客户端密钥是否可用在我的数据库中。这里是我的中间件功能nodejs异步中间件不起作用
module.exports = function() {
return function(req, res, next) {
// Implement the middleware function based on the options object
winston.info("check client")
User.getClient(req.get("clientId"), req.get("clientSecret"), function (err, client) {
winston.info("checking time");
if (client) {
return next();
} else {
}
});
winston.info("check client done")
}
}
但由于我打电话给我的猫鼬模型,我想我的心不是中间件完美的工作。在异步调用完成时。脚本正在通过。 所以我想在这里实现的是,如果客户端在我们的数据库中可用,中间件应该通过。所以中间件在得到猫鼬的响应之后必须继续前进。这是我的路由器代码。
var express = require('express')
, router = express.Router()
, clientVerify = require("../middlewares/clientVerify");
router.use(clientVerify())
您是否尝试用promise返回用户对象? –
没有。你能指导我做一个例子吗? – coder
查看[this](https://stackoverflow.com/a/35247560/3763848)示例 –