连接到Mlab时出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了连接到Mlab时出错相关的知识,希望对你有一定的参考价值。

我正在运行这个节点应用程序,当我用我的mongodb在本地运行时,它运行正常,但是在尝试连接到Mlab时,但我不断得到一些奇怪的错误,我无法弄清楚错误在哪里

错误信息:

[nodemon] starting `node index.js`
Error connecting to mongodb!
[nodemon] clean exit - waiting for changes before restart

index.js

const   con            = require('./con');

const mongoose = require('mongoose');

  mongoose.Promise = con.mongoose.Promise;

  mongoose.connect(con.mongoose.connection)
      .then(() => {
          console.log('Connected to mongodb!');
          require('./app.js');
      })
      .catch(err => {
          console.log('Error connecting to mongodb!');;                                                       
      });

con.js:

module.exports = {
    port: process.env.NODE_PORT || 8080,
    mongoose: {
        Promise: require('bluebird'), //mongoose promise library
        //connection: 'mongodb://localhost:27017/mmmmm',
    mongoose.createConnection(''mongodb://[username:password@]host1');
    }
};

这是我的app.js:

const   express           = require("express"),
        compress          = require("compression"),
        bodyParser        = require("body-parser"),
        cookieParser      = require("cookie-parser"),
        mongoose          = require("mongoose");
        session           = require("express-session"),
        bcrypt            = require("bcrypt"),
        logger            = require("morgan"),
        config            = require('./con');

    const app = express();
    app.enabled('trust proxy');

    app.use(logger('dev'));
    app.use(compress());

    app.use(bodyParser.urlencoded({ extended: true }));
    app.use(express.static("public"));
    app.use(bodyParser.json());
    app.use(cookieParser());      

    app.use(function(req, res, next){
        if (req.session && req.session.userId)
        req.isLoggedIn = true;
        else
        req.isLoggedIn = false;
        next();
        });

        app.use('/', require('./routes/router'));

app.listen(config.port, () => {
    utils.info('Express server listening on port ' + con.port);
    utils.info('http://localhost:' + con.port);
});

我也尝试过:

module.exports = {
    port: process.env.NODE_PORT || 8080,
    mongoose: {
        Promise: require('bluebird'), //mongoose promise library
    },
   url : 'mongodb://[username:password@]host1'
};

请有人帮助我,我已经爬了SO,但没有解决方案。

谢谢

答案

如果您使用mongoose 5.x,请删除

{ useMongoClient : true }  

因为在mongoose 5.x中不再需要该选项

以上是关于连接到Mlab时出错的主要内容,如果未能解决你的问题,请参考以下文章

Mongoose 无法连接到 mLab 环境

当 MLAB 仅提供字符串 URI 时,有人如何将他们的 MLAB mongodb 数据库连接到 robomongo [重复]

Djongo 没有连接到 mlab 服务器

无法从 AWS EC2 实例连接到 Mlab.com 数据库

如何在连接到 mLab 的 GraphQL 中为“更新”数据编写 Mutation

使用 Java 连接到 Azure Blob 存储服务时出错(状态代码 405,UnsupportedHttpVerb)