Я создал CRUD с NodeJS / Mongoose, разделил файлы в стиле MVC. В примере маршрута, который я показываю ниже, при выполнении подпрограммы retrieveOne
необходимо дождаться ее обработки, а затем перенаправить пользователя на тот или иной маршрут. Я хотел бы использовать Bluebird, чтобы ждать обработки. Мне нужна помощь, чтобы реализовать рутину.
Index.js -------------------------------------------- ---
const myCRUD = require('./api/controllers/controller')
router.post('/login', function(req, res, next) {
// HOW TO IMPLEMENT BLUEBIRD HERE?
// How to wait for the "retrieveOne" process and a then do a "if" test (below)?
let ret = myCRUD.retrieveOne({ name: "abc test" });
if(!ret) {
res.redirect('/success')
} else {
res.redirect('/error')
}
})
controller.js ------------------------------------------
const mongoose = require('mongoose');
const Schema = require('./schema-user');
const Model = mongoose.model('users', Schema);
const CRUD = {
retrieveOne: function(query) {
Model.findOne(query, function(err, result) {
if (err) return err;
return result;
});
}
}
module.exports = CRUD;
Примечание : Я уже нашел несколько примеров с Bluebird и без него прямо здесь, в S.O., но я не смог заставить его работать:
Примеры: 1 , 2 , 3 , 4 , 5