2017-03-24 5 views
0

Ich mache einen API-Server mit Express, Graphql (Apollo-Server) und Mungo.Verhindern Konsolenfehler mit Mongoose, Knoten und graphql

Ich teste die Benutzererstellung. Wenn die E-Mail dupliziert wird, löst mongoose einen Fehler aus (Validierungsfehler. Unique = true) und graphql behandelt sehr gut. Aber die Konsole (Terminal) zeigt auch den Fehler an. Wie kann ich dieses Problem verhindern?

Resolver:..

const MODEL_PATH = '../../models'; 
const User = require(MODEL_PATH + '/User'); 
const { register } = require('../../controllers/auth/RegisterController'); 

module.exports = { 
    RootQuery: { 
    users() { 
     return User.find({}); 
    } 
    }, 
    Mutation: { 
    registerUser(_, data) { 
     return register(data); 
    } 
    } 
}; 

RegisterController (Register Funktion)

exports.register = function(data) { 
    const { email, password } = data; 

    const user = new User({ 
    email, 
    password 
    }); 

    return new Promise((resolve, reject) => { 
    user.save().then((user) => { 
     resolve(user); 
    }).catch((err) => { 
     reject(err); 
    }); 
    }); 

}; 

Und der Fehler in der Konsole (ich nicht will, dass ich HANDLED die Fehler in dem CONTROLLER ICH WILL DIE FEHLER iN DER GRAPHQL RESPONSE)

MongoError: E11000 duplicate key error collection: y.users index: email_1 dup key: { : "[email protected]" } 
    at Function.MongoError.create (/Volumes/Datos/x/code/y/server/node_modules/mongodb-core/lib/error.js:31:11) 
    at toError (/Volumes/Datos/x/code/y/server/node_modules/mongodb/lib/utils.js:114:22) 
    .... 

Antwort in Graphiql (Das ist ok)

{ 
    "data": { 
    "registerUser": null 
    }, 
    "errors": [ 
    { 
     "message": "E11000 duplicate key error collection: y.users index: email_1 dup key: { : \"[email protected]\" }", 
     "locations": [ 
     { 
      "line": 9, 
      "column": 3 
     } 
     ], 
     "path": [ 
     "registerUser" 
     ] 
    } 
    ] 
} 

Danke

Antwort

Verwandte Themen