2015-05-09 144 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

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