我刚刚将MongoDB添加到使用npm init
命令创建的Node.js项目的依赖项中。我的index.js代码是:
var MongoClient = require('mongodb').MongoClient
, assert = require('assert');
// Connection URL
var url = 'mongodb://localhost:27017/mydatabase';
// Use connect method to connect to the server
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
console.log("Connected successfully to server");
db.close();
});
但是当我执行代码时会抛出以下错误:
AssertionError: null == { MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]
我真的不知道如何解决它。我跟踪了一些报告相同错误的指南,但我无法修复它。
我应该在调制解调器上打一个端口吗?我应该用我的IP替换“localhost”吗?我该怎么办?
请帮助我!
更新
我在Android设备上安装了MongoDB服务器,并将url
变量替换为mongodb://ANDROID-DEVICE-LOCAL-IP:27017/mydatabase
,现在可以正常使用。
如何将数据库放在计算机上?防火墙阻止传入连接吗?这是为什么它适用于Android但不适用于Windows?
答案 0 :(得分:1)
我解决了这个问题!
我在cmd中运行了mongod -dbpath "MY-PATH"
,现在可以正常运行了。
发生错误是因为没有在27017端口上侦听。现在mongod
程序正在侦听该端口上的连接,因此我的项目连接不再被拒绝。
答案 1 :(得分:0)
制作类似config.js
module.exports = {
'secretKey': '12345-67890-09876-54321',
'mongoUrl' : 'mongodb://localhost:27017/cubs'
}
并在服务器代码中要求该文件
var config = require('./config');
var mongoose = require('mongoose');
mongoose.connect(config.mongoUrl);
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function () {
console.log("Connected correctly to server");
});