Node.js 节点获取请求显示空数组
我在mongoDB上收集了一组数据。当我试图在我的节点代码中发出get请求来发送数据以便我可以看到它实际上正在被get时,显示的只是一个空数组 Server.js代码:Node.js 节点获取请求显示空数组,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,我在mongoDB上收集了一组数据。当我试图在我的节点代码中发出get请求来发送数据以便我可以看到它实际上正在被get时,显示的只是一个空数组 Server.js代码: const app = express() const mongoose = require("mongoose") const Post = require("./models/post") //connect to mongoose mongoose.connect( &qu
const app = express()
const mongoose = require("mongoose")
const Post = require("./models/post")
//connect to mongoose
mongoose.connect(
"mongodb+srv://<user>:<pass>@<mongohost>/posts?retryWrites=true&w=majority",
{ useUnifiedTopology: true, useNewUrlParser: true},
(req, res) => {
console.log("Connected to database")
})
app.get('/api', (req, res) => {
Post.find()
.then((result) => {
res.send(result)
})
.catch((err)=> {
console.log(err)
})
})
const port = process.env.PORT || 3001
app.listen(port, function() {
console.log("express server is running on port " + port)
})
您需要添加
.lean()
,以获取计划javascript对象而不是查询对象。另外,由于您正在发送json,请使用res.json()
而不是res.send()
修改您的代码,如下所示:
Post.find().lean()
.then((result) => {
res.json(result)
})
.catch((err)=> {
console.log(err)
})
您需要添加
.lean()
,以获取计划javascript对象而不是查询对象。另外,由于您正在发送json,请使用res.json()
而不是res.send()
修改您的代码,如下所示:
Post.find().lean()
.then((result) => {
res.json(result)
})
.catch((err)=> {
console.log(err)
})
为了确保,集合名为“posts”,并且在数据库中也被称为“posts”?为了确保,集合名为“posts”,并且在数据库中也被称为“posts”?发现了问题。我在模型声明中添加了数据所在集合的名称。我还使用了你的代码,这很有帮助。非常感谢。发现了问题。我在模型声明中添加了数据所在集合的名称。我还使用了你的代码,这很有帮助。非常感谢。