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");
})
2 respuestas
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");
})
Intenta usar esta sintaxis
app.get('/lists', (req,res) => {
List.find({}).then( lists => {
res.send(lists)
}).catch(err =>
console.log(err)
);
})
Preguntas relacionadas
Nuevas preguntas
javascript
Para preguntas sobre la programación en ECMAScript (JavaScript / JS) y sus diversos dialectos / implementaciones (excepto ActionScript). Incluya todas las etiquetas relevantes en su pregunta; por ejemplo, [node.js], [jquery], [json], etc.