Узел JS REST Service ошибка добавления элемента в массив - PullRequest
0 голосов
/ 14 января 2019

Я разработал специальную службу REST, которая дает мне массив в качестве ответа. Мне нужно добавить одну строку 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')}});
});
});

Любая помощь о том, как решить эту проблему и показать значение массива, а не свойство длины? Спасибо

Ответы [ 2 ]

0 голосов
/ 14 января 2019

согласно официальной документации:

Метод 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}});
0 голосов
/ 14 января 2019

Это потому, что techinfos.push('Other') возвращает длину techinfos (посмотрите на метод 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);
  }
  techinfos.push('Other'); // push an element here
  res.status(200).send({
    status: 'ok', data: {msg: 'Brands tires available', tires :techinfos}});
  });
});

При желании вы получите массивы techinfos.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...