получить пустой массив и больше ничего - PullRequest
0 голосов
/ 02 мая 2019

запрос get здесь просто возвращает пустой массив. Я не могу понять, почему. Я видел другой код, который выглядит точно так же, просто отлично работает.

Я пытался найти проблему, но не нашел соответствующих ответов. Я использую Почтальон, чтобы проверить это.


const getPantry = async (req, res) => {
    const results = await pantry.find({});
    return send(res, 200, results)
}


module.exports = cors(
    router(
        get('/pantry', getPantry),
    )
)

Я ожидаю объект json, но он просто возвращает пустой массив.

1 Ответ

0 голосов
/ 09 мая 2019

Кратчайший быстрый и грязный полный рабочий код, который я могу получить на основе вашего примера, таков:

const { send } = require('micro')
const { router, get } = require('microrouter')
const { MongoClient } = require('mongodb')

var pantry = null

MongoClient.connect('mongodb://localhost')
  .then(conn => {
    pantry = conn.db('test').collection('pantry')
  })

const getPantry = async (req, res) => {
  const results = await pantry.find({}).toArray();
  send(res, 200, results)
}

module.exports = router(get('/pantry', getPantry))

Вызов конечной точки с использованием curl:

$ curl 'http://localhost:3000/pantry'
[{"_id":0},{"_id":1},{"_id":2}]

, который правильно показываетсодержимое коллекции.

Я считаю, что в вашем коде отсутствует метод toArray().find() сам по себе возвращает курсор , и он не будет выводить результат запроса, если вы не сделаете с ним что-то, например, вызовом toArray() или итерацией по нему с использованием forEach()

...