Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js MongoDB GET请求未返回任何内容_Node.js_Mongodb_Amazon Ec2 - Fatal编程技术网

Node.js MongoDB GET请求未返回任何内容

Node.js MongoDB GET请求未返回任何内容,node.js,mongodb,amazon-ec2,Node.js,Mongodb,Amazon Ec2,我正在AmazonEC2实例上使用NodeJS+Forever运行MongoDB数据库。(这里可以找到MongoDB和NodeJS代码)。我按照本教程在EC2实例上安装了Mongo: 当我跑步时: curl -H "Content-Type: application/json" -X POST -d '{"test":"field"}' http://localhost:3000/data 邮报返回: { "test": "field", "created_at": "2017-1

我正在AmazonEC2实例上使用NodeJS+Forever运行MongoDB数据库。(这里可以找到MongoDB和NodeJS代码)。我按照本教程在EC2实例上安装了Mongo:

当我跑步时:

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

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

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

[]
我的dbpath设置为
/data/db/
,运行它时没有权限问题


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

您正在使用的节点应用程序存在许多问题和潜在问题。我认为您可以开始修复/更新这些问题,或者找到另一个示例MEAN应用程序,这取决于您最终要完成的任务

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

the_collection.insert(obj, function() { //C
callback(null, obj);
应该是(有一些额外的控制台日志记录以便更好地测量):

如果你做了这些改变,你几乎肯定会看到你的帖子实际上返回了一个MongoError。然后,您可以继续查找并解决下一组问题

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

驱动程序与此服务器版本不兼容


修复这一问题将需要一些额外的工作,因为较新的2.x驱动程序中有一些API更改,这将需要支持更新版本的MongoDB(例如3.2或3.4)。请参见

您的get请求到底是什么样子的?get请求是:curl-xGET如果您在帖子之后运行get,那么我必须承认,我不知道会出什么问题。看起来应该能用了。您是否可以使用shell或robomongo之类的客户端来确认这些值是否在数据库中?在mongo控制台db.getCollectionNames returns[]中,似乎没有保存文档。你能运行这篇文章吗,紧接着是shell命令说实话,我不确定这是否能解决它——但它看起来肯定能解决。谢谢
the_collection.insert(obj, function(err, doc) { //C
console.error("insert error: %s", err.message);
callback(err, doc);