2015-07-11 67 views
2

我正在用Node,Express和MongoDB構建一個REST api服務。我安裝了MongoDB,它在localhost:27017上的PC上正常運行。我可以添加集合並讀取它們。在我的app.js文件,我有這樣的設置如何解決Mongoose Connect UNKNOWN?

 

    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,它正在正常工作......?

+0

你有在同一臺機器上運行的mongod實例? 另外,嘗試mongodb:// localhost:27017/bookAPI – snozza

+0

我確實有mongod運行,並且還插入了一些虛擬數據。我在安裝了Win7的不同PC上測試了相同的實例,並且它工作正常。後來我發現,在新版本中,mongodb不支持XP。 –

回答

0

嘗試改變:

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 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

我解決了這個問題,與安裝穩定貓鼬。 它是貓鼬4.x,我在winxp中安裝了3.8(npm install [email protected]*)。

0

試試這個:

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