Zacząłem uczyć się Node.js i jedną rzecz, która jest dla mnie trochę myląca, to sprawdzanie poprawności schematu.Najlepsza praktyka sprawdzania schematu Mongoose i wyświetlania niestandardowego komunikatu o błędzie
Jaki byłby najlepszy sposób sprawdzania poprawności danych i wyświetlania niestandardowego komunikatu o błędzie użytkownikowi?
Powiedzmy mamy ten prosty schemat:
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);
chciałbym mieć zarejestrowanych użytkowników z unikalnych emaili więc dodanych unique: true
do mojego schematu. Teraz, jeśli chcę, aby wyświetlić komunikat o błędzie do użytkownika, który mówi, dlaczego on nie zarejestrowany, chciałbym coś otrzymać odpowiedź tak:
"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
}
To wszystko jest trochę brudny i chciałbym, aby wyświetlić wysłać do klienta strona po prostu coś takiego:
"status": {
"text": "Email [email protected] is already taken.",
"code": 400
}
Jak to zrobić?
Wprowadź wartość 'code' z 11000, a następnie przeanalizuj wartość' errmsg', aby uzyskać szczegółowe informacje. Nie tak czysty, jak byś chciał, ale tak to robisz. – JohnnyHK