2017-04-07 55 views
0

我app.js包含,如何重新連接貓鼬默認連接?

exports.getDatabaseConnection = function (dbname, uname, psw) { 
mongoose.disconnect(); 
    mongoose.connect('mongodb://' + uname + ':' + psw + '@localhost:27017/' + dbname); 
    } 

和index.js是

router.post('/chooseDb', function (req, res) { 
     var temp = req.body.country; 
     if (temp === "india") { 
     var uname = 'abc'; 
     var psw = 'abc123'; 
     var dbname = 'demoDB'; 
     app.getDatabaseConnection(dbname, uname, psw); 
     res.json('done'); 
     } 
     else if (temp === "finland") { 
    var uname = 'xyz'; 
    var psw = 'xyz123'; 
    var dbname = 'testDB'; 
    app.getDatabaseConnection(dbname, uname, psw); 
    res.json('done'); 
    } 
    }) 

當我第一次連接到印度,然後它工作正常,但第二次時,我叫chooseDb API與芬蘭它給一個錯誤,如 錯誤:嘗試打開未關閉的連接。 爲mongoose.createConnection我試圖像模式

var mongoose = require('mongoose'); 
    var schema = mongoose.Schema; 
    var db=require('../app.js'); 
    var garageSchema = new schema({ id: String, name: String, address: String }); 
module.exports = db.model('garage', garageSchema); 

這給了我一個錯誤 db.model沒有發揮作用

回答

0

連接using--

mongoose.createConnection('mongodb://' + uname + ':' + psw + '@localhost:27017/' + dbname) 

,而不是connect()

+0

我也試過,但是當我使用我無法訪問任何api。 – aToz

+0

根據createConnection的我的模式就像 var mongoose = require('mongoose'); var schema = mongoose.Schema; var db = require('../ app.js'); var garageSchema = new schema({ id:String, name:String, address:String }); module.exports = db.model('garage',garageSchema); ' 這給出了一個錯誤,如.. db.model不是函數 – aToz

+0

@aToz這種情況下的錯誤是什麼? –