Проблема с опросом моего API с Мангуста - PullRequest
0 голосов
/ 14 января 2020

У меня проблема с результатом моего запроса в базе данных mongoDB. Когда я выполняю c мой запрос, результат всегда пуст: []. Я новый пользователь, пожалуйста, помогите мне. Я пользуюсь SO Ma c OS Catalina. Этот код находится в доступе моего API (я скрыл свой пароль)

//connection on mongoDB
let URI =
  "mongodb+srv://marco:<xxxxxxxxx>@persona-iydyz.gcp.mongodb.net/test?retryWrites=true&w=majority";
mongoose.connect(URI, 
  { useNewUrlParser: true, useUnifiedTopology: true });

  mongoose.connection.on('connected', () => {console.log('mongodb connected')})

, и этот код находится в моем маршруте, который выполняет c запрос

var express = require('express');
var router = express.Router();
const persona = require('./../classes/persona')

/* GET home page. */
router.get('/', function(req, res, next) {
    let result = persona.find().exec();
    res.send(result);
});

module.exports = router;

Я не Я не понимаю, почему мой результат всегда пуст. пожалуйста, помогите мне. Спасибо

1 Ответ

0 голосов
/ 17 января 2020

Любой метод модели mon goose должен вызываться с обратным вызовом, в противном случае он просто строит запрос, а не выполняет его. exe c () существует для выполнения этого встроенного запроса. Вы можете использовать обратный вызов напрямую, если вам не нужно что-то делать со встроенным запросом.

Затем попробуйте следующий код:

router.get('/', function(req, res, next) {
   persona.find({}, (err, result) => {
      if(err) 
        return res.send(err.message);
      return res.send(result)
   })
});

Если вы используете обещанный пн goose, тогда это будет

router.get('/', function(req, res, next) {
   try {
     let result = await persona.find({});
     return res.send(result);
   } catch(err) {
     return res.send(err.message);
   }
});

PS Проверьте, успешно ли подключен mongoDb!

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