将JSON数组从Express发送到Angular2

时间:2016-08-30 13:27:29

标签: arrays json node.js express angular

我正在尝试发送一个包含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 = [];并插入了“错误”字样。进入那个数组,但没有任何变化,我仍然是相同的结果

1 个答案:

答案 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);
});