I am using Promise with Express.
router.post('/Registration', function(req, res) {
var Promise = require('promise');
var errorsArr = [];
function username() {
console.log("1");
return new Promise(function(resolve, reject) {
User.findOne({ username: req.body.username }, function(err, user) {
if(err) {
reject(err)
} else {
console.log("2");
errorsArr.push({ msg: "Username already been taken." });
resolve(errorsArr);
}
});
});
}
var username = username();
console.log(errorsArr);
});
When I log errorsArray
, it is empty and I don't know why. I am new in node.js. Thanks in advance.
you can write a clean code like this. Promise is a global variable available you don't need to require it.
Try the following, and after please read the following document https://www.promisejs.org/ to understand how the promises work.
You can have other errors also (or things that shouldn't be done that way). I'm only showing you the basic use of a Promise.