Problema al trabajar en datos de MongoDb

Conectando con éxito a MongoDb ,

Pero en el comando find, debería devolver una colección vacía, sin embargo, no se devuelve nada.

Cuál podría ser el problema o cómo podría ser monitoreado por algunos mensajes de error.

Gracias.

Dependencias del proyecto

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

}

Mongoose.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 No funciona

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");
})

0
Shl 27 feb. 2020 a las 13:55

2 respuestas

La mejor respuesta

Estás pasando múltiples argumentos en el bloque. Entonces solo se acepta argumento único que se marca como datos de éxito. Si desea mostrar errores, también debe pasar un argumento de error en el bloque catch.

Prueba este código:

    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");
})
0
Hardik Patel 27 feb. 2020 a las 12:03

Intenta usar esta sintaxis

   app.get('/lists', (req,res) => {
     List.find({}).then( lists => {
        res.send(lists)
     }).catch(err =>
        console.log(err)
     );
   })
1
Y. D. 27 feb. 2020 a las 11:21
60431628