[英]Prevent console error with Mongoose, node and graphql
我正在使用Express,Graphql(Apollo服务器)和mongoose制作API服务器。
我正在测试用户创建。 当电子邮件重复时,mongoose会抛出错误(验证错误.Bustal = true)并且graphql处理非常好。 但控制台(终端)也显示错误。 我该如何预防这个问题?
解析器:
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(注册函数)
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);
});
});
};
和控制台中的错误(我不想这样。我在控制器中处理了错误。我只想在GRAPHQL响应中出错)
MongoError: E11000 duplicate key error collection: y.users index: email_1 dup key: { : "test@example.com" }
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)
....
Graphiql中的响应(没关系)
{
"data": {
"registerUser": null
},
"errors": [
{
"message": "E11000 duplicate key error collection: y.users index: email_1 dup key: { : \"test@example.com\" }",
"locations": [
{
"line": 9,
"column": 3
}
],
"path": [
"registerUser"
]
}
]
}
谢谢
根据: http : //dev.apollodata.com/tools/graphql-server/setup.html
在服务器中
app.use('/graphql', bodyParser.json(), graphqlExpress({ schema: myschema, debug: false }));
debug false做了伎俩。
现在。 我检查包以获得更好的错误处理
谢谢
看看apollo-errors
:
https://github.com/thebigredgeek/apollo-errors
和apollo-resolvers
:
https://github.com/thebigredgeek/apollo-resolvers
这些包一起用于处理您描述的问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.