nodejs mongodb, не получая результата от db - PullRequest
0 голосов
/ 27 февраля 2020

Ошибка при работе с данными из MongoDb

Успешное подключение к MongoDb ,

, но при команде поиска она должна вернуть пустую коллекцию, но ничего не возвращается.

в чем может быть проблема, или как ее можно отслеживать с помощью сообщений об ошибках.

Спасибо.

Зависимости проекта

"dependencies": {
"body-parser": "^1.19.0",
"epxress": "0.0.1-security",
"express": "^4.17.1",
"nodemon": "^2.0.2"

}

пн goose. js

const mongoose = require('mongoose');

mongoose.Promise = global.Promise;
mongoose.connect('mongodb://localhost:27017/ListsDB', { useNewUrlParser: true, useUnifiedTopology: true}).then( ()=> {
    console.log("Connected to MongoDbB successfully ");
}).catch( (e) => {
    console.log("Error while attempting to connect to MongoDB");
    console.log(e);
});

mongoose.set('useCreateIndex', true);
mongoose.set('useFindAndModify', false);

module.exports = {
    mongoose
};

list.model. js

const mongoose = require('mongoose');

const ListSchema = new mongoose.Schema({
   title: {
       type: String,
       required: true,
       minlength: 1,
       trim: true
   }
})

const List = mongoose.model('List', ListSchema);

module.exports = { List }

app. js Не работает

const express = require('express');
const app = express();

const bodyParser = require('body-parser');

const { List, Task } = require('./db/models');

app.use(bodyParser.json());

app.use(function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*"); // update to match the domain you will make the request from
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next()
  })

app.get('/lists', (req,res) => {
    // We want to return an array of all the lists in the database
    List.find({}).then( (err, lists)=> {
        res.send(lists)
    })
})

app.listen(3000, () => {
    console.log("Server is listening on port 3000");
})

Ответы [ 2 ]

1 голос
/ 27 февраля 2020

Попробуйте использовать этот синтаксис

   app.get('/lists', (req,res) => {
     List.find({}).then( lists => {
        res.send(lists)
     }).catch(err =>
        console.log(err)
     );
   })
0 голосов
/ 27 февраля 2020

Вы передаете несколько аргументов в блоке. Тогда принимается только один аргумент, который помечается как данные успеха. Если вы хотите отображать ошибки, вы также должны передать аргумент ошибки в блоке catch.

Попробуйте этот код:

    const express = require('express');
    const bodyParser = require('body-parser');
    const List = require('./listModel');
    const mongoConnection = require('./mongoose');
    const app = express();

app.use(bodyParser.json({
    limit: '20mb',
    extended: true
}));
app.use(bodyParser.urlencoded({
    extended: true
}));

app.get('/lists', (req,res) => {
     List.find().then( lists => {
                res.send(lists)
          }).catch(err =>
                res.send(err)
          );
 });

app.listen(3100, () => {
    console.log("Server is listening on port 3100");
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...