ユーザー入力を検証する小さな関数があります。その機能では、メールアドレスがすでに取得されているかどうかも確認します。しかし、非同期コールバックに問題があります。誰かが私にヒントを与えてくれることを願っています、私がこれをどのように解決できるか。私は、express 3フレームワーク、mongodb、およびnode-validatorライブラリでnodejsを使用しています。
これは私の検証機能の一部です:
function check(data, callback) {
mongoose.model('User', User).count(data, function (err, count) {
callback(err, !! count);
});
};
function validate(email, password, confirm) {
var v = new Validator(),
errors = new Array();
v.error = function (msg) {
errors.push(msg);
};
check({email: email}, function (err, exists) {
v.check(exists, { email: 'E-Mail is already taken' }).equals(false);
});
...
return errors;
}
非同期コールバックに基づいて、変数errors
はreturn
ステートメントemptyにあります。メールアドレスがすでにデータベースにあるかどうかを他に確認するにはどうすればよいですか?