Express API, возвращающий ненужный раздел «data» в моем GET-запросе - PullRequest
0 голосов
/ 11 ноября 2018

В настоящее время я создаю API отдыха, и у меня неожиданный вывод при выполнении запроса / GET.

Когда я делаю запрос get к API, он возвращает

{ 
  data: {
    [{myExpectedObjects},{myExpectedObjects}]
  }
}

однако, я ожидаю, что мой запрос get вернет только массив объектов. Ниже приведен код, который я использую для выполнения остальных вызовов

Создать контроллер

const create = (req, res) => {
    let dataModel = generateModel(genericDataFromReq);

    dataModel = new dataModel({
      genericData,
      specificData,
    });

    dataModel.save().then((data) => {
      res.status(201).send(data);
    }, (e) => {
      res.status(500).send(e);
    });
  }
};

получить весь контроллер

const list = (req, res) => {
  const dataModel = generateModel(dataToGet);

  dataModel.find().then((data) => {
    if (data.length === 0) {
      res.status(404).send('failed');
    } else {
      res.status(200).send({ data });
    }
  }, (e) => {
    res.status(500).send(e);
  });
};

сгенерировать модель данных

function generateModel(dbCollectionName) {
  try {
    return generateDataModel(dbCollectionName);
  } catch (e) {
    return mongoosee.model(`${dbCollectionName}`);
  }
}

Я знаю, что код немного нетрадиционный, но я настроил универсальный API отдыха для обработки запросов различного типа и нашел, что это решение - лучший способ сделать это.

Есть какие-нибудь идеи о том, почему мой запрос get all связан с разделом "data" перед моим массивом объектов (что меня на самом деле интересует)?

1 Ответ

0 голосов
/ 12 ноября 2018

Я считаю, что проблема в этой строке:

else {
  res.status(200).send({ data });
}

Когда вы помещаете фигурные скобки вокруг переменной, она создает пару ключ-значение, где ключ - это имя переменной, а значение - значение переменной. Так что избавьтесь от фигурных скобок, и все должно работать так, как вы ожидаете. Посмотрите части, которые упоминают это обозначение ES2015 здесь:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer

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