我一直在按照在线说明在node.js上使用mongoose设置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('Successfully Connected');
console.log(mongoose.connection.host);
console.log(mongoose.connection.port);
});
我在跑步时收到此响应
node sample.js
Successfully Connected
localhost
27017
但是即使我的mongo.db已关闭,我也收到此响应,所以我认为有一些错误,我不确定如何检查它们是否正确连接。
答案 0 :(得分:2)
这对我有用。尝试进行一些调试以找出正在发生的情况。
mongoose.set('debug', true);
mongoose.connect("mongodb://localhost:27017/test", {useNewUrlParser: true})
.then(() => {
console.log('connected to the db');
})
.catch(err => {
console.log('connection failed ' + err);
});
答案 1 :(得分:1)
我认为您必须检查API才能连接。
https://mongoosejs.com/docs/connections.html
第二个参数是选项,第三个参数是回调-但您似乎已将回调作为第二个参数传递-另外,请检查您作为响应得到了什么
mongoose.connect(uri, options, function(error) {
// Check error in initial connection. There is no 2nd param to the callback.
});
// Or using promises
mongoose.connect(uri, options).then(
() => { /** ready to use. The `mongoose.connect()` promise resolves to undefined. */ },
err => { /** handle initial connection error */ }
);