嗨,我对node
和mongodb
非常陌生。
如何获取违反唯一性规则的列名。我收到错误消息
{
name: 'MongoError',
message: 'E11000 duplicate key error index: myCab.users.$phone_1 dup key: { : 9145780834.0 }',
driver: true,
code: 11000,
index: 0,
errmsg: 'E11000 duplicate key error index: myCab.users.$phone_1 dup key: { : 9145780834.0 }',
getOperation: [Function],
toJSON: [Function],
toString: [Function]
}
但我需要自定义错误消息,以便可以直接在前端使用,因为有可能有两列具有唯一的constrints,所以为此我需要列名
答案 0 :(得分:1)
您可以通过以下方式获取字段名称:
var fieldName = err.message.substring(err.message.lastIndexOf('index: ') + 7, err.message.lastIndexOf('_1'));
您可以将其放入函数中,并在代码为11000
或11001
时调用它。试试这个:
function getUniqueErrorMessage(err)
{
var output;
try
{
var fieldName = err.message.substring(err.message.lastIndexOf('index: ') + 7, err.message.lastIndexOf('_1'));
output = fieldName.charAt(0).toUpperCase() + fieldName.slice(1) + ' already exists';
}
catch (ex)
{
output = 'Unique field already exists';
}
return output;
};
旁注: 欢迎使用mongodb。你现在可以停止调用它们了:)