我是Express的新手。在中间件中使用Express Router.use
我试图根据数据库中的值路由请求。为此,我正在调用服务功能。 路由工作正常,但我失去了请求对象。 我试图将req传递给服务,但它不起作用。
任何帮助显示如何做到这一点很好。
这是我的代码块。
var companyService = require("services/companyService");
router.use('/', function (req, res, next) {
companyService.isCompanyOnline(req.body.companyCode).then(function (company) {
if (company) {
router.use('/', require("api/controllers/online"));
}
else {
router.use('/', require("api/controllers/offline"));
}
});
next();
});
module.exports = router;
Services.companyService:
function isCompanyOnline(code) {
var deferred = Q.defer();
companies.findOne({ companyCode: code }, function (err, company) {
if (err) deferred.reject(err.name + ': ' + err.message);
//if (err) throw err;
if (company) {
// return company online parameter
deferred.resolve(company.isOnline);
} else {
// company not found
deferred.resolve();
}
});
return deferred.promise;
}
** **在哪里你失去'req'对象?或者更好:你想在哪里访问'req'对象? – tmslnz
@tmslnz在'api/controllers/online'或'api/controllers/online'路线中。 –
那么...远去回复 – tmslnz