我试图在 Node 中编写一个简单的验证脚本,error
当某些验证检查失败时,错误代码会添加到数组中。更复杂的是,我还调用了一个函数translate
,它进行数据库调用并返回与错误代码相关联的全文(翻译成指定的语言)。为了实现这一点,我使用了异步库。
不幸的是,即使验证失败,以下代码始终会导致空数组。我已经独立确认我的translate
功能有效。任何想法为什么这不起作用?
app.post("/user", function(req, res) {
var error = [];
if (req.body.username == "") {
error.push("username_required");
}
if (req.body.password == "") {
error.push("password_required");
}
for (var i = 0; i < error.length; i++) {
error[i] = function(callback) {
translate(error[i], req.language, function(text) {
callback(null, text);
});
};
}
async.parallel(error, function(error, results) {
res.send(results);
});
});
translate = function(code, language, callback) {
var code = database.escape(code);
var language = database.escape(language);
database.query("SELECT content FROM text WHERE language = 'en' AND code = " + code, function(error, row) {
callback(row[0].content);
});
}