【问题标题】:Mongodb + nodejs doesn't connect with localhostMongodb + nodejs 不连接本地主机
【发布时间】:2018-04-19 05:32:14
【问题描述】:

我一直在尝试通过 nodejs 连接本地 mongo 服务器。 这里是mongodb官方给出的简单教程,但是不钩once部分。

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function () {
    // we're connected!
    console.log("connected");
});

这是我项目的 package.json:

{
    "name": "MVC-Express-Application",
    "description": "An Express.js application using the MVC design pattern...",
    "version": "0.0.1",
    "dependencies": {
        "body-parser": "1.4.3",
        "errorhandler": "1.1.1",
        "express": "4.4.4",
        "express-handlebars": "1.1.0",
        "mongoose": "^3.8.8",
        "morgan": "1.1.1"
    }
}

当我输入mongo 他们说

MongoDB shell version v3.4.10
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.10
Server has startup warnings:
2017-11-07T07:58:20.003+0900 I CONTROL  [initandlisten]
2017-11-07T07:58:20.003+0900 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-11-07T07:58:20.003+0900 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-11-07T07:58:20.003+0900 I CONTROL  [initandlisten]

所以它应该在控制台上显示connected,但没有。 有人知道如何处理吗?我尝试通过brew重新安装mongo。

谢谢。

macOS Sierra 10.12.6 节点 v7.6.0

【问题讨论】:

  • 您缺少端口 27017
  • 在“localhost”之后添加 27017 并没有让事情变得更好......
  • 启动应用时它会说什么?
  • 大概是你开始 mongo 你开始你的应用程序之前?另外,你得到什么错误?
  • 所以在这里我错过了描述,但即使我启动了 mongod 并且应该已经启动了服务器,启动节点应用程序并没有启动 once 部分。

标签: node.js mongodb express web


【解决方案1】:

我认为你必须启动 mongodb 进程,并为此运行 mongodServer/3.4/bin/ 目录。之后尝试连接。

【讨论】:

  • 所以在这里我错过了描述,但即使我启动了mongod 并且应该已经启动了服务器,启动节点应用程序并没有启动 once 部分。
【解决方案2】:

更新到最新的猫鼬立即解决了问题! 谢谢大家的帮助!

【讨论】:

    【解决方案3】:

    有同样的问题。这里正在解决。 在主“app.js”文件中使用这个结构:

    `mongoose.connect(keys.mongoURI, {useUnifiedTopology: true,useNewUrlParser: 
    true,useCreateIndex: true})
    .then(() => console.log('MongoDB has been connected!'))
    .catch(error => console.log(error));`
    

    然后创建连接文件,在该文件中插入以下代码: module.exports = { mongoURI: "mongodb+srv://name:password@vlad-m9cz9.mongodb.net/test? retryWrites=true&w=majority" <- here is an example of link, take it from your cluster connection parameter. };

    然后转到您的文件“app.js”并创建变量并需要连接对象: const mongoose = require('mongoose'); const keys = require('./config/keys');

    并在 mongoDB 中插入 IP 地址以访问 DB

    就是这样!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-01
      • 2017-02-27
      • 2019-12-03
      • 1970-01-01
      • 2014-03-26
      • 2018-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多