首页 文章

如何解决Mongoose Connect UNKNOWN?

提问于
浏览
2

我正在使用Node,Express和MongoDB构建REST api服务 . 我安装了MongoDB,它在我的电脑上正常运行:localhost:27017 . 我可以添加集合并阅读它们 . 在我的app.js文件中,我有这个设置

var express = require('express');
    var mongoose = require('mongoose');
    var bodyParser = require('body-parser');

    mongoose.connect('mongodb://127.0.0.1:27017/bookAPI');

    var db = mongoose.connection;
    db.on('error', console.error.bind(console, 'connection error:'));
    db.once('open', function callback () {
      console.log("h");
    });


    var app = express();
    app.use(bodyParser.urlencoded({ extended: true }));
    app.use(bodyParser.json());

    var port = process.env.PORT || 3000;

    app.use('/api', require('./routes/api.js'));



    app.listen(port, function(){
        console.log('Running on port ' + port);
    });

我总是得到一个错误 - MongoError - 无法连接UNKNOWN我搜索了几个小时,但没有找到任何解决方案 . 我如何修复它以便它可以连接到MongoDB,它正常工作......?

3 回答

  • 0

    我解决了这个问题,安装稳定的猫鼬 . 它是mongoose 4.x,我在winxp中安装了3.8(npm install mongoose@3.8.*) .

  • 0

    Try to change:

    mongoose.connect('mongodb://127.0.0.1:27017/bookAPI')
    
    var db = mongoose.connection;
    db.on('error', console.error.bind(console, 'connection error:'));
    db.once('open', function callback () {
      console.log("h");
    });
    

    Into:

    var appConnection = mongoose.createConnection('mongodb://127.0.0.1:27017/bookAPI');
    
    appConnection.on('error', console.error.bind(console, 'connection error:'));
    appConnection.once('open', function callback () {
      console.log("h");
    });
    
  • 0

    试试这个:

    var connectionString = "mongodb://" + host + ":" + dport + "/" + dbName;
    mongoose.connect(connectionString, function(err) {
        if (err) {
            console.log(err)
        } else {
            console.log('Connected to database ' +dbName);
        }
    });
    

相关问题