我正在Express中使用错误处理,并且过去用数组返回MongoDB错误的无效数据
我用了
else if (process.env.NODE_ENV === 'production') {
let error = { ...err };
if (error.name === 'CastError') error = handleCastErrorDB(error);
if (error.code === 11000) error = handleDuplicateFieldsDB(error);
if (error.name === 'ValidationError')
error = handleValidationErrorDB(error);
sendErrorProd(err, res);
}
但不适用于该流程。env.NODE_ENV==='生产'
由于let(错误= {... err};)
最佳答案
err
是否具有可枚举的属性?我的猜测是it doesn't,因此对象传播语法不会将任何内容复制到对象文字中。您可能只想使用原始的err
对象,我认为您的代码应该是
if (process.env.NODE_ENV === 'production') {
let error;
if (err.name === 'CastError')
error = handleCastErrorDB(err);
else if (err.code === 11000)
error = handleDuplicateFieldsDB(err);
else if (err.name === 'ValidationError')
error = handleValidationErrorDB(err);
else
error = { ...err };
sendErrorProd(err, res);
}
关于javascript - 分解原始错误以使用数组返回mongodb错误的无效数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63862746/