让 Mongo 连接到 Express 应用程序

Posted

技术标签:

【中文标题】让 Mongo 连接到 Express 应用程序【英文标题】:Getting Mongo to Connect to Express App 【发布时间】:2015-05-18 22:53:25 【问题描述】:

Yosemite Mongo 用户正在阅读一本 MEAN 书籍。我一直严格按照这些步骤操作,但 MongoDB 没有按预期连接。我之前安装过一次 Mongo 来处理导入数据,但并没有走得太远。以下是我除了 package.json 之外的所有 Mongo 相关代码:

在 app.js 我有 require('./app_server/models/db'); 并且在那个文件夹中我有:

var mongoose = require( 'mongoose' );
var dbURI = 'mongodb://localhost/Loc8r';
mongoose.connect(dbURI);

// CONNECTION EVENTS
mongoose.connection.on('connected', function () 
  console.log('Mongoose connected to ' + dbURI);
);
mongoose.connection.on('error',function (err) 
  console.log('Mongoose connection error: ' + err);
);
mongoose.connection.on('disconnected', function () 
  console.log('Mongoose disconnected');
);

我期待得到

Express server listening on port 3000
Mongoose connected to mongodb://localhost/Loc8r

而是得到:

Mongoose disconnected
Mongoose connection error: Error: failed to connect to [localhost:27017]

我尝试将一行更改为 var dbURI = 'mongodb://localhost:3000/Loc8r';,因为这是我的计算机正在使用的,但随后出现此错误:

Mongoose disconnected
Mongoose connection error: Error: connection closed

非常感谢任何帮助。

【问题讨论】:

简单的东西优先...你确定 mongo 正在运行吗? 我不确定?这本书没有说任何关于将它作为一个步骤运行的内容。 你的环境是什么? 麦克优胜美地。添加到帖子 我很震惊你的书没有说在尝试连接之前启动 mongo 服务器。此外,当您启动它时,您需要自定义它以侦听端口 3000(默认为 27017)。 【参考方案1】:

Mongo 缺少所需的文件夹 MongoDB not working. "ERROR: dbpath (/data/db) does not exist."

然后服务器必须使用“mongod”运行

【讨论】:

以上是关于让 Mongo 连接到 Express 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

无法连接到 Mongo 数据库 [重复]

无法通过 Spark 连接到 Mongo DB

Heroku 上的 Node.js Express 应用程序不会使用 Mongoose 连接到 MongoLab 数据库

AWS - 节点应用程序不会连接到正在运行的 mongo 实例

连接到 MongoDB 集合的问题

结合vert.x和mongo构建应用