2015-05-09 275 views
1

我編寫了一個代碼,用於集成所有類型的社交網絡登錄和nodejs。這裏是我的server.js無法通過js連接到mongo db

// get all the tools we need 
var express = require('express'); 
var app  = express(); 
var port  = process.env.PORT || 8080; 
var mongoose = require('mongoose'); 
var passport = require('passport'); 
var flash = require('connect-flash'); 

var morgan  = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 
var session  = require('express-session'); 

var configDB = require('./config/database.js'); 

// configuration =============================================================== 
mongoose.connect(configDB); // connect to our database 

// require('./config/passport')(passport); // pass passport for configuration 

// set up our express application 
app.use(morgan('dev')); // log every request to the console 
app.use(cookieParser()); // read cookies (needed for auth) 
app.use(bodyParser()); // get information from html forms 

app.set('view engine', 'ejs'); // set up ejs for templating 

// required for passport 
app.use(session({ secret: '234545671290eftg5678qwer235623' })); // session secret 
app.use(passport.initialize()); 
app.use(passport.session()); // persistent login sessions 
app.use(flash()); // use connect-flash for flash messages stored in session 

// routes ====================================================================== 
//require('./app/routes.js')(app, passport); // load our routes and pass in our app and fully configured passport 

// launch ====================================================================== 
app.listen(port); 
console.log('The magic happens on port ' + port);  

配置/ database.js

module.exports = { 

    'url' : 'mongodb://localhost27017:' // looks like mongodb://<user>:<pass>@mongo.onmodulus.net:27017/Mikha4ot 

}; 

當我運行node server,我得到以下錯誤:

events.js:72 
     throw er; // Unhandled 'error' event 
      ^
Error: failed to connect to [[object Object]:27017] 
    at null.<anonymous> (/home/ajay/Desktop/NodeAuthentication/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:555:74) 
    at emit (events.js:106:17) 
    at null.<anonymous> (/home/ajay/Desktop/NodeAuthentication/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:156:15) 
    at emit (events.js:98:17) 
    at Socket.<anonymous> (/home/ajay/Desktop/NodeAuthentication/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection.js:534:10) 
    at Socket.emit (events.js:95:17) 
    at net.js:834:16 
    at process._tickCallback (node.js:448:13) 

我這兩條線之間混淆:

var configDB = require('./config/database.js'); 

mongoose.connect(configDB); // connect to our database 

我應該使用

mongoose.connect(configDB.url); ?? 

我怎樣才能解決呢?

+2

和什麼是configDB? mongoose.connect()應該會收到一個url:「mongodb://172.20.10.2/database」 –

+0

您忘記了顯示重要的部分 - database.js – Nocturno

+0

好吧,我將編輯問題並添加database.js –

回答

1

config/database.js中有一個錯字。你不指定數據庫名稱和結腸必須localhost27017之間:

module.exports = { 
    'url' : 'mongodb://localhost:27017/my-test-db' // looks like mongodb://<user>:<pass>@mongo.onmodulus.net:27017/Mikha4ot 
}; 

在連接方法,你可以把對象或字符串,所以你應該把它作爲問題提出:

mongoose.connect(configDB.url); 
+0

太棒了!它的工作..謝謝你:) –