我正在尝试发送一个包含mongoose错误的自制数组,它使得数组正常。 这是代码:
student.save(function(err, student) {
if(err)
var errors = [];
for (field in err.errors) {
errors.push({error: err.errors[field].message})
};
res.contentType('application/json').status(500).send(JSON.stringify(errors));
res.status(200).json(student);
});
它将创建一个数组:
[ { error: 'Error, expected `_id` to be unique. Value: `111111` },
{ error: 'Error, expected `email` to be unique. Value: `test@test.com` } ]
但是当它被发送到angular2时,它被存储为字符串
_body: "[{"error":"Error, expected `_id` to be unique. Value: `111111`"},{"error":"Error, expected `email` to be unique. Value: `test@test.com`"}]"
headers: ...
ok: false
status: 500
statusText: "OK"
type: 2
url: ...
目前我正在尝试记录错误'在Angular2中控制台。但是我已经尝试过做JSON.parse了,我收到了这个错误:EXCEPTION: SyntaxError: Unexpected token o in JSON at position 1
。
同样在快递中,我尝试了许多不同的发送数组的方法,我尝试过.json(errors);
而不是.send(JSON.stringify(errors));
任何想法都将不胜感激
修改 angular2代码:
err => console.log(err)
我已尝试过JSON.parse(err)
,我尝试了private errors = [];
并插入了“错误”字样。进入那个数组,但没有任何变化,我仍然是相同的结果
答案 0 :(得分:0)
试试这个......
student.save(function(err, student) {
if (err) {
var errors = [];
for (var field in err.errors) {
errors.push({
error: err.errors[field].message
});
}
return res.contentType('application/json').status(500).send(errors);
}
res.status(200).json(student);
});