我是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