2017-03-24 3 views
0

私はExpress、Graphql(Apolloサーバ)とmongooseでAPIサーバを作っています。Mongoose、node、graphqlのコンソールエラーを防止します

私はユーザー作成をテストしています。電子メールが複製されると、mongooseはエラー(検証エラー、Unique = 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); 
    }); 
    }); 

}; 

とコンソールにエラー(私はしたくない私は、コントローラ内のエラーを処理し、私はしたいです。。 ONLY GRAPHQL応じてERROR)Graphiqlで

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) 
    .... 

応答(それは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" 
     ] 
    } 
    ] 
} 

はあなたに

答えて

1

を記述する1つのようなのUE:サーバーでhttp://dev.apollodata.com/tools/graphql-server/setup.html

app.use('/graphql', bodyParser.json(), graphqlExpress({ schema: myschema, debug: false })); 

デバッグ偽のトリックをしました。

今すぐ。私はより良いエラー処理のためにパッケージをチェックしています

ありがとう

関連する問題