Для этих двух уникальных индексов на email
& username
, если вы можете получить имена индексов, используя:
db.collectionName.getIndexSpecs()
Затем при вставках, если вы получите ошибку дублирующегося ключа:
WriteResult({
"nInserted" : 0,
"writeError" : {
"code" : 11000,
"errmsg" : "E11000 duplicate key error index: test.collection.$a.b_1 dup key: { : null }"
}
})
В своем коде вы можете сделать:
if (err.code == 11000) {
if (err.msg.includes("email_1")) { // assuming name is `email_1` & also you can trim msg to get failing input value.
return res.status(422).send(["Duplicate email address found."]);
} else {
return res.status(422).send(["Duplicate username found."]);
}
}