尝试将 node.js 连接至 MongoDB,收到了成功的响应但无法建立连接。
尝试将 node.js 连接至 MongoDB,收到了成功的响应但无法建立连接。
我一直在按照在线指导设置使用mongoose在node.js上的mongodb数据库。我成功地将mongodb运行并监听在27017端口上,然而当我在node.js中运行连接代码时,即使mongo.db没有运行,我也能够得到成功的响应,并且我没有看到任何关于mongo.db接收到任何数据的更新。
我尝试了很多不同的互联网示例,但无法使它们中的任何一个工作。
所以我的MongoDB
显示:
2019-03-26T12:00:46.039+0000 I NETWORK [initandlisten] waiting for connections on port 27017
这是我试图使其工作的基本代码,因为我的原始API不工作:
//sample.js var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test', function(err){ if(!err) console.log('成功连接'); console.log(mongoose.connection.host); console.log(mongoose.connection.port); });
当我运行node sample.js
时,我收到这个响应:
成功连接 localhost 27017
但是即使我的mongo.db已经关闭,我仍然收到这个响应,所以我认为存在一些错误,我不确定如何检查它们是否连接正确。
尝试连接node.js到mongodb,得到了成功的响应,但没有连接。
我认为您需要检查连接的API。
第二个参数是选项,第三个是回调函数-但您似乎将回调函数作为第二个参数传递-还要检查您得到的响应。
// 使用回调函数 mongoose.connect(uri, options, function(error) { // 检查初始连接中的错误。回调函数没有第二个参数。 }); // 或者使用Promise mongoose.connect(uri, options).then( () => { /** 准备使用。mongoose.connect()的Promise解析为undefined。 */ }, err => { /** 处理初始连接错误 */ } );
原因:将回调函数作为第二个参数传递,导致连接失败。
解决方法:将回调函数作为第三个参数传递,或者使用Promise来处理连接。