ユーザーが既に存在しているかどうか、またはカスタムエクスプレスバリデーターにない場合は、ブール値(trueまたはfalse)を戻すのに問題があります。 は、これまでのところ、私はこの方法でそれを動作するように管理します。約束やオブジェクトが、私は方法がわからないではない:express-validatorにcustomValidatorsのユーザーが既に存在していることを確認するにはどうすればよいですか?
app.use(expressValidator({
customValidators: {
isUsernameAvailable: function (username) {
return User
.findOne({ 'username': username })
.then(function (user) {
if (user) {
throw new Error('User already exist')
}
}
}
}
アイデアは(isUsernameAvailable名を対応)ブールを返すことです。
私はこの方法でそれを確認するためにそれを使用:
module.exports = {
create: (req, res) => {
let user = req.body
...
req.check('username', 'This username is already taken.').isUsernameAvailable()
...
}
}
ありがとう、私は[非同期検証](https://github.com/ctavan/express-validator#asynchronous-validation)の例として正確に使用するようにしました。 2つの警告メッセージが表示されます。約束がエラーではなく[object object]で拒否され、約束がエラーで拒否されました:[object Array] –