Javascript nodejs mongodb,未从db获得任何结果
处理来自MongoDb的数据时出现问题 成功连接到MongoDb 但在find命令上,它应该返回一个空集合,但不返回任何内容 问题可能是什么,或者如何通过一些错误消息进行监控 谢谢 项目依赖关系Javascript nodejs mongodb,未从db获得任何结果,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,处理来自MongoDb的数据时出现问题 成功连接到MongoDb 但在find命令上,它应该返回一个空集合,但不返回任何内容 问题可能是什么,或者如何通过一些错误消息进行监控 谢谢 项目依赖关系 "dependencies": { "body-parser": "^1.19.0", "epxress": "0.0.1-security", "express": "^4.17.1", "nodemon": "^2.0.2" } 猫鼬 const mongoose = require('mongo
"dependencies": {
"body-parser": "^1.19.0",
"epxress": "0.0.1-security",
"express": "^4.17.1",
"nodemon": "^2.0.2"
}
猫鼬
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");
})
尝试使用此语法
app.get('/lists', (req,res) => {
List.find({}).then( lists => {
res.send(lists)
}).catch(err =>
console.log(err)
);
})
您正在then块中传递多个参数。然后是仅接受标记为成功数据的单个参数。若要显示错误,还必须在catch块中传入error参数 请尝试以下代码:
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");
})
你的意思是
res.json(列表)
?不,我认为res.send(列表)是正确的。你在app.js中导入列表了吗?你检查过你的控制台错误吗?@Shl你能检查一下吗?@Juhil Somaiya是的,而且错误没有返回任何东西,怀疑是mongo问题,但不知道如何监控。你看到app.js中导入的列表了吗?它将如何获得列表?@JuhilSomaiya是的。我已经试用了你的代码,该代码与此解决方案配合得很好。他的本地mongodb@HardikPatelit可能有问题,看起来这确实是一个mongo问题,任何关于如何验证/查找问题的想法首先确保您的系统上安装了mongoDB,如果已安装,请检查它是否已连接到您的应用程序。我认为您尚未在应用程序中连接mongoDB。在app.js文件const mongo=require(“mongoconnection文件的路径”)中添加以下行;