gpt4 book ai didi

node.js - MongoDB GET 请求不返回任何内容

转载 作者:可可西里 更新时间:2023-11-01 10:00:08 26 4
gpt4 key购买 nike

我在 Amazon EC2 实例上使用 NodeJS + Forever 运行 MongoDB 数据库。 (可以在此处找到 MongoDB 和 NodeJS 代码 https://github.com/WyattMufson/MongoDB-AWS-EC2 )。我按照本教程在 EC2 实例上安装了 Mongo:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/ .

当我运行时:

curl -H "Content-Type: application/json" -X POST -d '{"test":"field"}' http://localhost:3000/data

POST 返回:

{
"test": "field",
"created_at": "2017-11-20T04:52:12.292Z",
"_id": "5a125f7cead7a00d5a2593ec"
}

但是这个 GET:

curl -X GET http://localhost:3000/data

返回:

[]

我的 dbpath 设置为 /data/db/ 并且我在运行它时没有权限问题。

为什么 POST 请求有效,但 GET 请求无效?

最佳答案

您正在使用的 Node 应用程序存在许多问题和潜在问题。我想您可以着手解决/更新这些问题或找到另一个示例 MEAN 应用程序,具体取决于您最终要完成的目标。

其中一个明显的问题是 collectionDriver.js 没有正确地将错误传回回调,它传回了 null 而不是错误。这出现在 6 个不同的地方,但特别是(根据您的示例 POST)here在第 46 和 47 行:

the_collection.insert(obj, function() { //C
callback(null, obj);

应该是(带有一些额外的控制台日志记录以备不时之需):

the_collection.insert(obj, function(err, doc) { //C
console.error("insert error: %s", err.message);
callback(err, doc);

如果您进行了这些更改,您几乎肯定会看到您的 POST 实际上返回了 MongoError。然后您可以继续寻找并解决下一组问题。

您可能发现的错误/问题之一是项目使用的是 真正 旧版本的 MongoDB Node.js 驱动程序,并且您发现修复错误处理时可能会发现此错误:

driver is incompatible with this server version

解决这个问题需要一些额外的工作,因为在更新的 2.x 驱动程序中有一些 API 更改,这将需要支持更新的 MongoDB 版本(例如 3.2 或 3.4)。参见 Node.js Driver Compatibility

关于node.js - MongoDB GET 请求不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47385369/

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