Ich bin neu in Express.Express Router.use in Middleware
Ich versuche, eine Anfrage nach einem Wert in der DB zu routen. Dazu rufe ich eine Servicefunktion an. Routing funktioniert erfolgreich, aber ich verliere das Anfrageobjekt. Ich habe versucht, die Anforderung an den Dienst zu übergeben, aber es hat nicht funktioniert.
Jede Hilfe, die zeigt, wie dies zu tun wäre, wäre nett.
Hier ist mein Codeblock.
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;
}
** Wo ** sind Sie:
dann die URL im Router ändern das 'req'-Objekt verlieren? Oder besser: wo versuchst du auf das 'req' Objekt zuzugreifen? – tmslnz
@ tmslnz in 'api/controllers/online' oder' api/controllers/online' Routen. –
Na dann ... weg zu antworten – tmslnz