0

我刚刚将 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 上运行的原因吗?

4

2 回答 2

1

我解决了这个问题!

mongod -dbpath "MY-PATH"在cmd中运行,现在它可以工作了。

发生错误是因为 27017 端口上没有任何内容正在侦听。现在mongod程序正在侦听该端口上的连接,因此不再拒绝来自我的项目的连接。

于 2017-08-25T09:08:03.473 回答
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");
});
于 2017-08-24T11:07:53.717 回答