尽管数据库已填满数据,但使用 curl 从 MongoDB 取回空数组
Get back empty array from MongoDB using curl although the database is filled up with data
我正在学习教程:https://thinkster.io/mean-stack-tutorial 并将其应用到副项目中以更好地理解平均堆栈的工作原理。
我创建了一个数据库并使用 mongoimport 将 json 导入其中:mongoimport --db cmt2 --collection Course --type json --file myFile.json --jsonArray
我已经使用以下方式声明了我的数据库:mongoose.connect('mongodb://localhost/cmt2');
当我用 npm start 启动服务器后 curl 时:curl http://localhost:3000/courses
我只在 return ( [] ) 中得到一个空数组。
但我确定我已经将数据导入数据库,因为当我转到 mongo shell 并打开 cmt2 数据库并使用 db.Course.find()
我取回了所有数据.
我的课程获取路线也可能是正确的,因为当我在使用 cmt2 之前定义另一个用于测试的数据库时它可以工作:mongoose.connect('mongodb://localhost/cmt');
我不理解的集合可能有些愚蠢,因为我随机命名它们,而且我不知道我在代码中实际声明我想使用哪个集合的位置。
作为参考,这是我用于 get 请求的代码:
router.get('/courses', function(req, res, next) {
Course.find(function(err, courses){
if(err){ return next(err); }
res.json(courses);
});
});
我在数据库中导入的 json 中的数据示例:
{
"code": "ABCD ",
"name": "ABCDE",
"list": [
{
"code": "ABCDEF ",
"name": "ABCDEFG"
},
{
"code": "BCDEF ",
"name": "BCDEFG"
}]
}
编辑:
cmt(我可以 curl 的数据库)和 cmt2(我不能 curl 的数据库)之间的主要区别是我在 cmt 中使用了嵌入式模型,而在 cmt2 中没有使用嵌入式模型
我导入到错误的本地主机。
我正在学习教程:https://thinkster.io/mean-stack-tutorial 并将其应用到副项目中以更好地理解平均堆栈的工作原理。
我创建了一个数据库并使用 mongoimport 将 json 导入其中:mongoimport --db cmt2 --collection Course --type json --file myFile.json --jsonArray
我已经使用以下方式声明了我的数据库:mongoose.connect('mongodb://localhost/cmt2');
当我用 npm start 启动服务器后 curl 时:curl http://localhost:3000/courses
我只在 return ( [] ) 中得到一个空数组。
但我确定我已经将数据导入数据库,因为当我转到 mongo shell 并打开 cmt2 数据库并使用 db.Course.find()
我取回了所有数据.
我的课程获取路线也可能是正确的,因为当我在使用 cmt2 之前定义另一个用于测试的数据库时它可以工作:mongoose.connect('mongodb://localhost/cmt');
我不理解的集合可能有些愚蠢,因为我随机命名它们,而且我不知道我在代码中实际声明我想使用哪个集合的位置。
作为参考,这是我用于 get 请求的代码:
router.get('/courses', function(req, res, next) {
Course.find(function(err, courses){
if(err){ return next(err); }
res.json(courses);
});
});
我在数据库中导入的 json 中的数据示例:
{
"code": "ABCD ",
"name": "ABCDE",
"list": [
{
"code": "ABCDEF ",
"name": "ABCDEFG"
},
{
"code": "BCDEF ",
"name": "BCDEFG"
}]
}
编辑:
cmt(我可以 curl 的数据库)和 cmt2(我不能 curl 的数据库)之间的主要区别是我在 cmt 中使用了嵌入式模型,而在 cmt2 中没有使用嵌入式模型
我导入到错误的本地主机。