5
私はNode.jsの学習を始めましたが、少し混乱させるものは、スキーマの検証です。Mongooseスキーマを検証し、カスタムエラーメッセージを表示するベストプラクティス
データを検証し、カスタムエラーメッセージをユーザーに表示するにはどうすればよいでしょうか?私は自分のスキーマにunique: true
を追加しましたので、私はユニークな電子メールをユーザーに登録しているしたいと思います
var mongoose = require("mongoose");
// create instance of Schema
var Schema = mongoose.Schema;
// create schema
var Schema = {
"email" : { type: String, unique: true },
"password" : String,
"created_at" : Date,
"updated_at" : Date
};
// Create model if it doesn't exist.
module.exports = mongoose.model('User', Schema);
:
は、我々はこの単純なスキーマを持っているとしましょう。私は彼が登録されていない理由を述べているユーザーにエラーメッセージを表示したい場合は今、私はこのような応答何か受け取るだろう:
"code": 11000,
"index": 0,
"errmsg": "E11000 duplicate key error index: my_db.users.$email_1 dup key: { : \"[email protected]\" }",
"op": {
"password": "xxx",
"email": "[email protected]",
"_id": "56895e48c978d4a10f35666a",
"__v": 0
}
これは、すべての少し厄介ですが、私はクライアントに送信する表示したいです次のようなものです:
"status": {
"text": "Email [email protected] is already taken.",
"code": 400
}
これを行う方法は?
'code'値11000をキーオフして、' errmsg'値を解析して詳細を取得します。あなたが望むほど清潔ではありませんが、それはあなたのやり方です。 – JohnnyHK