У меня есть приложение для среднего стека, в котором я предоставляю БД с некоторыми входными данными, включая электронную почту. Теперь в этом случае каждое электронное письмо должно быть уникальной записью, и при вводе повторяющегося электронного письма происходит сбой приложения, что ожидается.
Сбой узла узла с сообщением
MongoError: E11000 duplicate key error collection
и затем выдает еще одну ошибку
[nodemon] app crashed - waiting for file changes before starting...
, после которой он не может перезапуститься автоматически. Вручную, когда я перезапускаю nodemon, все работает нормально, но нужен какой-то процесс, который nodemon должен возобновить после показа вышеупомянутого сообщения.
Есть ли способ добиться того же?
Вот некоторый код длято же самое в моей службе, работающей
updateClient(req, res){
_db.Client.update( {code: req.body.code }, { $set:{
_db.Client.update( {code: req.body.code }, { $set:{
name:req.body.name,
desc:req.body.desc,
...
contract:{signedBy:req.body.contract.signedBy, start:req.body.contract.start, end:req.body.contract.end},
...
}}).exec((err, docs) => {
if (err || docs.ok !== 1) {
log.error(err);
res.send({ success: false, message: 'Meesage on fail' });
}
if (docs.ok === 1) {
res.send({ success: true, message: 'message on fail' });
}
});
Ошибка, которую я получил
E11000 duplicate key error collection: hrms.clients index: contact.email_1 dup key: { : "asidansd@jsanod.com" }
MongoError: E11000 duplicate key error collection: hrms.clients index: contact.email_1 dup key: { : "asidansd@jsanod.com" }
at Function.MongoError.create (/Users/***/hrms/node_modules/mongoose/node_modules/mongodb-core/lib/error.js:31:11)
at toError (/Users/***/node_modules/mongoose/node_modules/mongodb/lib/utils.js:139:22)
at /Users/***/node_modules/mongoose/node_modules/mongodb/lib/collection.js:1059:67
at /Users/***/node_modules/mongoose/node_modules/mongodb-core/lib/connection/pool.js:469:18
at process._tickCallback (internal/process/next_tick.js:61:11)
Также моя схема определяется следующим образом
static get Schema(){
return mongoose => ({
name: { type: String},
...
contract:{signedBy:{type:String}, start:{type:Date}, end:{type:Date}},
...})}