Ho iniziato a imparare Node.js e una cosa che mi confonde un po 'è la convalida dello schema.Procedura consigliata per convalidare lo schema Mongoose e visualizzare il messaggio di errore personalizzato
Quale sarebbe la procedura migliore per convalidare i dati e visualizzare un messaggio di errore personalizzato per l'utente?
Diciamo che abbiamo questo semplice schema:
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);
Vorrei avere gli utenti registrati con email unici così ho aggiunto unique: true
al mio schema. Ora, se voglio visualizzare il messaggio di errore per l'utente che dice perché non è registrata, avrei ricevuto risposta o meno così:
"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
}
Questo è tutto un po 'disordinato e mi piacerebbe visualizzare da inviare al cliente laterale appena qualcosa di simile:
"status": {
"text": "Email [email protected] is already taken.",
"code": 400
}
Come ottenere questo risultato?
Cancellare il valore 'code' di 11000 e quindi analizzare il valore' errmsg' per ottenere i dettagli. Non è pulito come vorresti, ma è così che lo fai. – JohnnyHK