Основной запрос GET с использованием Express.js и Mongoose - PullRequest
0 голосов
/ 05 октября 2018

Я работаю над заданием, чтобы перечислить все данные в базе данных mongoDB, и мне не удается найти, где я иду не так.Это кажется довольно простой проблемой, но всякий раз, когда я запускаю предоставленный тест мокко, он выдает 404 ошибки.Вот соответствующая часть теста:

  it('should it able to retrieve all listings', function(done) {
    agent.get('/api/listings')
      .expect(200)
      .end(function(err, res) {
        should.not.exist(err);
        should.exist(res);
        res.body.should.have.length(147);
        done();
      });
  });

А вот мой код для запроса GET.Я пробовал несколько разных способов его кодирования, но это, кажется, самый простой / прямой способ вернуть желаемые данные в виде JSON.

exports.list = function(req, res) {
  Listing.find(function(err, listing){
    if(err){
      res.status(404).send(err);
    } else {
    res.json(listing);
  }})
};

Есть ли что-то еще, что я должен делать?Я смотрел на учебники и основные примеры запросов, и кажется, что это должно работать, но это не так.Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Похоже, вы не передаете первый параметр в метод поиска .Только обратный вызов ... попробуйте это:

Listing.find({}, function(err, listing) {
  if (err) {
    res.status(404).send(err);
  } else {
    res.json(listing);
  }
})

Я предполагаю, что вам нужны все записи, поэтому мы пропускаем пустой объект {} .

0 голосов
/ 05 октября 2018
  • Убедитесь, что функция промежуточного программного обеспечения (код для запроса GET) сопоставлена ​​с /api/listings
  • Я не уверен насчет exports.list.Вероятно, это должно быть module.exports
  • Я предполагаю, основываясь на вашем коде, что вы используете mongoose ODM.В этом случае, я думаю, вам нужно передать запрос методу поиска проверить это
  • Возможно, вы захотите убедиться, что вы подключены к базе данных во время инициализации тестаи что это завершается до начала теста
  • Всегда помогает регистрировать ошибки

Оформить заказ Экспресс-генератор , чтобы создать шаблон экспресс-приложения.Может помочь сравнить его с вашим приложением, чтобы проверить, правильно ли оно подключено

...