mongoose连接不工作

我一直在试图为我的Node.js应用程序build立一个mongoose连接,到目前为止,这是不工作,我不知道我在做什么错了。 我已经按照文档和几个教程,但是当我打印mongoose.connection.readyState ,我得到0 ,这意味着我断开连接。 此外,每当我尝试一个路线,我没有得到任何答复,我得到“连接超时”的错误。

我相信这不是一个身份validation问题,因为我试图直接从terminal使用相同的URL和凭据访问数据库,他们的工作。

这是我的代码:

app.js:

 var express = require('express'); var mongoose = require('mongoose'); var passport = require('passport'); var session = require('express-session'); var MongoStore = require('connect-mongo')(session); var app = express(); app.use('/', routes); mongoose.Promise = global.Promise; var db = mongoose.createConnection('mongodb://..', {user, pass}); var store = new MongoStore({ mongooseConnection: db }); app.use(session({ key: 'key', secret: 'secret', store:store, proxy: true, resave: true, saveUninitialized: true })); app.use(passport.initialize()); app.use(passport.session()); app.use(flash()); console.log(mongoose.connection.readyState); module.exports = app; 

bin/www:

 var app = require('../app'); var debug = require('debug')('tableping-backend:server'); var http = require('http'); var port = normalizePort(process.env.PORT || '3000'); app.set('port', port); var server = http.createServer(app); server.listen(port); server.on('error', onError); server.on('listening', onListening); function normalizePort(val) { var port = parseInt(val, 10); if (isNaN(port)) { return val; } if (port >= 0) { return port; } return false; } function onError(error) { if (error.syscall !== 'listen') { throw error; } var bind = typeof port === 'string' ? 'Pipe ' + port : 'Port ' + port; switch (error.code) { case 'EACCES': console.error(bind + ' requires elevated privileges'); process.exit(1); break; case 'EADDRINUSE': console.error(bind + ' is already in use'); process.exit(1); break; default: throw error; } } function onListening() { var addr = server.address(); var bind = typeof addr === 'string' ? 'pipe ' + addr : 'port ' + addr.port; debug('Listening on ' + bind); } 

这是我在控制台中得到的:

 $ npm start > node ./bin/www 0 

你可以像下面这样尝试这个mongoose.createConnection('mongodb://username:password@host:port/database')的凭证,

 var db = mongoose.createConnection('mongodb://' + user + ':' + pass + '..'); 

此外,你可以改变这个mongoose.connect而不是mongoose.createConnection如下,

 var db = mongoose.connect('mongodb://username:password@host:port/d‌​ataba‌​se'); var store = new MongoStore({ mongooseConnection: db.connection });