Node js REST Service错误将项目添加到数组

时间:2019-01-14 12:11:55

标签: node.js express

我已经开发了一个特定的REST服务,该服务给了我一个Array作为响应。 我需要在该数组中添加一个String项,并且使用了push()方法,但是通过这种方式,响应仅显示我的项总数,而不显示值。 这是我的代码

router.get('/tire_brand', VerifyToken, function(req,res){
TechInfo.find().distinct('Brand', (err, techinfos) => {
if (err) {
    console.log(err);
    return res.status(400).send({ status: 'ko', data: {msg: err.message }});
    console.log(err);
}
res.status(200).send({status: 'ok', data: {msg: 'Brands tires available', tires :techinfos.push('Other')}});
});
});

关于如何解决此问题并显示数组值而不是length属性的任何帮助吗? 谢谢

2 个答案:

答案 0 :(得分:2)

这是因为techinfos.push('Other')返回了techinfos的长度(请看一下push方法here)。如果您按照以下方式操作:

router.get('/tire_brand', VerifyToken, function(req,res){
  TechInfo.find().distinct('Brand', (err, techinfos) => {
  if (err) {
    console.log(err);
    return res.status(400).send({ status: 'ko', data: {msg: err.message }});
    console.log(err);
  }
  techinfos.push('Other'); // push an element here
  res.status(200).send({
    status: 'ok', data: {msg: 'Brands tires available', tires :techinfos}});
  });
});

您将根据需要获得techinfos阵列。

答案 1 :(得分:-1)

按照official documentation:

  

push()方法将一个或多个元素添加到数组的末尾,然后   返回数组的新长度。

您可以执行此操作,并且应该可以:

    // push the element first
    techinfos.push('Other');
    // and then send the response back
    res.status(200).send({status: 'ok', data: {msg: 'Brands tires available', tires :techinfos}});