gpt4 book ai didi

node.js - 如何使用 find() 函数从 MongoDB 调用数据?

转载 作者:太空宇宙 更新时间:2023-11-04 01:23:11 29 4
gpt4 key购买 nike

我从 Node.js/MongoDB 开始,并且正在努力从数据库获取数据。

没有任何控制台错误,所以我不确定这有什么问题。我怀疑我在 api.js

中的 find() 做错了什么

这是Team.json。一般来说,这里是已经导入到MongoDB中的数据

{"Teams": [
{"name": "Real Madrid", "City": "Madrid", "conference":"rmd"},
{"name": "Liverpool", "City": "Liverpool", "conference":"liv"},
{"name": "Bayern Munich", "City": "Munich", "conference":"mun"} ]}

这是 api.js,我在其中创建 GET 请求

const express = require('express')
var router = express.Router({mergeParams: true});
const Team = require('../models/Team')

router.get('/team', (req, res) => {

Team.find(null)
.then(data => {
res.json({
confirmation: 'success',
data: data
})
})
.catch(err => {
res.json({
confirmation: 'fail',
message: err.message
})
})

})

module.exports = router;

这是app.js,我在其中创建了 Express 应用程序并调用 API

let express = require('express')

const config = {
views: 'views',
static: 'public',
db: {
url: 'mongodb://localhost/footballdb',
type: 'mongo',
onError: (err) => {
console.log('DB connection failed')
},
onSuccess: () => {
console.log('DB connected')
}

}
}

let app = express(config)
const api = require('./routes/api')
app.use('/api', api )


app.listen(4005, () => {
console.log('Example app is listening on port 4005!')
})



module.exports = app;

编辑:

也许这也会有帮助:模型/Team.js

const mongoose = require('mongoose')

const Team = new mongoose.Schema({
name:{type: String, default: ''},
City:{type: String, default: ''},
conference: {type: String, default:''}
})


module.exports = mongoose.model('Team',Team)

我希望在浏览器中看到 http://localhost:4005/api/team 下的 JSON 文件中的数据但我唯一能看到的是:http://prntscr.com/pkkgmt

我的 MongoDB 在本地运行,我不知道我做错了什么?

最佳答案

最好发送一个空对象来查找。

您可以尝试使用以下代码并说出会发生什么吗?

const express = require('express')
var router = express.Router({mergeParams: true});
const Team = require('../models/Team')

router.get('/team', (req, res) => {

Team.find({})
.then(data => {
console.log(data);

res.json({
confirmation: 'success',
data: data
})
})
.catch(err => {
console.log(err);
res.json({
confirmation: 'fail',
message: err.message
})
})

})

module.exports = router;

导入到团队集合的文档与团队架构的形状也不匹配。在您的集合中,团队有一个父团队属性。

集合必须采用以下格式:

https://prnt.sc/pkp9bt

示例数据:

{
"_id" : ObjectId("5da8a15fc0f0eb20a0e425d6"),
"name" : "Bayern Munich",
"City" : "Munich",
"conference" : "mun"
}

{
"_id" : ObjectId("5da8a12dc0f0eb20a0e425d5"),
"name" : "Liverpool",
"City" : "Liverpool",
"conference" : "liv"
}

{
"_id" : ObjectId("5da8a108c0f0eb20a0e425d4"),
"name" : "Real Madrid",
"City" : "Madrid",
"conference" : "rmd"
}

关于node.js - 如何使用 find() 函数从 MongoDB 调用数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58432713/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com