我一直在寻找为什么会这样,但最近我重新安装了Ubuntu 16.04并将Node + Express项目复制到闪存驱动器然后将其粘贴到完全相同的相应位置(〜/ Programming / project /)。一旦这样做,其他一切都按照我的预期工作,但当我通过Mongoose向它发出请求时,Mongo没有响应。我没有任何理由相信Mongoose是没有回应的原因。我有几条路线,我知道应该工作,完全相同的代码在我朋友的机器上工作(相同的Ubuntu,版本和一切)。我已经多次卸载并重新安装了所有东西(包括Ubuntu)。唯一有效的方法是调用查找具有特定ID的内容,当且仅当ID不存在时才会返回。 Mongo不会返回所有记录或其他任何内容。该网站只是无休止地旋转(本地托管在我的机器上)。但是,在终端中使用Mongo工作正常。我可以查询并获得结果,好像一切正常。这是发生在其他人身上还是有任何想法?我可以尝试包含一些代码。
这不起作用
Greeting.find({}, function(err, greetings) {
res.status(200).json(greetings);
});
这确实有效。
Greeting.findById(req.params.id, function(err, greeting) {
if(err)
res.status(404).json({"error": "Greeting with that ID does not exist"});
res.status(200).json(greeting);
});
编辑: 对不起,我是新手堆栈溢出所以我仍然掌握应该添加或不添加的内容......
mongoose.connect(database.url);
mongoose.connection.on('error', function() {
console.info("Could not run mongodb, did you forget to run mongod?");
});
database.url是它需要的,就我所知,连接是开放的......
我还应该提一下,在安装Ubuntu时,我擦了以前的双启动,只支持Ubuntu,所以我选择了硬盘加密......这是否会阻止Mongo正常工作?如果是这样,我该如何解决?
答案 0 :(得分:0)
问题实际上是加密的硬盘驱动器。我重新安装了Ubuntu并修复了它。我还不确定如何使用加密磁盘。