我有以下代码:
app.post("/login/auth", (req, res) => {
(async function() {
let NikitaBellucci = (await auth.login(req, db, crypto))[0];
res.send(NikitaBellucci);
})();
});
和
exports.login = (req, db, crypto) => {
pro = new Promise((resolve,reject) => {
let pseudo = req.body.pseudo;
let password = crypto.createHmac('sha256', req.body.password)
.update('jojofags suck')
.digest('hex');
let query = "SELECT * FROM users WHERE users.pseudo = ? AND users.password = ? LIMIT 1";
db.query(query, [pseudo, password], function (err, result) {
if (err) throw err; // GESTION D'ERREURS
result.isAdministrator = function() {
if(this.role <= 90) { return true; } else { return false; }
}
resolve(result);
});
})
return pro.then((val) => {
console.log(val);
return val;
})
}
在console.log(val);
上,我可以看到先前添加到对象中的方法。但是,当将其返回到我的主文件方法“消失”时,如何避免这种情况?
谢谢
答案 0 :(得分:0)
您的函数已附加到整个结果对象,但是您在0
中获得了该函数的(await auth.login(req, db, crypto))[0];
属性,而该属性没有该函数。只需删除[0]
,然后NikitaBellucci.isAdministrator
就可以了。