Ich versuche, async/await
zu bekommen, um Ereignisse in der Reihenfolge auszulösen, aber es scheint, dass ich etwas vermisse, da meine console.log-Markierungen rückwärts in der Reihenfolge auslösen, auf die ich gehofft hatte.Async/erwarten in Knoten geschachtelte Funktionen?
Ich frage mich, ob ist mit meiner Verwendung von geschachtelten Funktionen in users.js
zu tun, aber mehrere Varianten von async/await
versucht hat, funktioniert es nicht wie erwartet.
// index.js
var users = require("./users.js");
app.post("/getToken", async function(req, res) {
if (req.body.email && req.body.password) {
const email = req.body.email;
const password = req.body.password;
const user = await users(email, password)
// running this should output console.log("No 1")
// from users.js first, but doesn't ?
console.log('No 2')
if (user) {
var payload = {
id: user.id
};
var token = jwt.encode(payload, cfg.jwtSecret);
res.json({
token: token
});
} else {
res.sendStatus(401);
}
} else {
res.sendStatus(401);
}
});
// users.js
module.exports = function(emailAddress, password) {
db.connect();
var query = `
SELECT
id,
email,
password,
salt
FROM
users
WHERE
email = ?`;
var query_params = [emailAddress];
db.query(
query,
query_params,
function(error, result, fields) {
console.log('No 1')
if (error) throw error;
if (result.length == 1) {
if (checkPass(password, result[0].password, result[0].salt)) {
return { id: result[0].id }
} else {
console.log("login False | Password");
return false;
}
} else {
console.log("login False | username");
return false;
}
}
)
}
Erklären Sie Ihre downvote, wenn Sie bitte können? Ich bin glücklich, die Frage bei Bedarf hinzuzufügen – denden