【问题标题】:I can't connect to Mongodb. Yes it is running我无法连接到MongoDB。是的,它正在运行
【发布时间】:2017-04-29 04:32:06
【问题描述】:

我一直在尝试测试我的项目,即使它正在运行并且可以在 CMD 提示符下连接到它,它也无法连接到 mongodb。

这是错误

C:\Users\RockConqueredMe\Projects\volunteer-v.1.0\node_modules\mongoose\node_mod
ules\mongodb\lib\server.js:258
        process.nextTick(function() { throw err; })
                                      ^
MongoError: failed to connect to server [mongodb:27017] on first connect
    at Pool.<anonymous> (C:\Users\RockConqueredMe\Projects\volunteer-v.1.0\node_
modules\mongoose\node_modules\mongodb-core\lib\topologies\server.js:309:35)
    at emitOne (events.js:96:13)
    at Pool.emit (events.js:188:7)
    at Connection.<anonymous> (C:\Users\RockConqueredMe\Projects\volunteer-v.1.0
\node_modules\mongoose\node_modules\mongodb-core\lib\connection\pool.js:270:12)
    at Connection.g (events.js:291:16)
    at emitTwo (events.js:106:13)
    at Connection.emit (events.js:191:7)
    at Socket.<anonymous> (C:\Users\RockConqueredMe\Projects\volunteer-v.1.0\nod
e_modules\mongoose\node_modules\mongodb-core\lib\connection\connection.js:175:49
)
    at Socket.g (events.js:291:16)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at connectErrorNT (net.js:1020:8)
    at _combinedTickCallback (internal/process/next_tick.js:74:11)
    at process._tickCallback (internal/process/next_tick.js:98:9)

这是来自 app.js 的代码

 var express = require('express'); 
 var path = require('path'); 
 var favicon = require('serve-favicon'); 
 var logger = require('morgan');
 var cookieParser = require('cookie-parser');
 var bodyParser = require('body-parser'); 
 var mongoose = require('mongoose');
 var passport = require('passport'); 
 var LocalStrategy = require('passport-local').Strategy;

 var index = require('./routes/index'); 
 var users = require('./routes/users');

 var app = express();

 // view engine setup app.set('views', path.join(__dirname, 'views'));
 app.set('view engine', 'jade');

 // uncomment after placing your favicon in /public
 //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
 app.use(logger('dev')); 
 app.use(bodyParser.json());
 app.use(bodyParser.urlencoded({ extended: false }));
 app.use(cookieParser()); 
 app.use(express.static(path.join(__dirname, 'public')));

 app.use(passport.initialize()); app.use(passport.session());
 app.use(express.static(path.join(__dirname, 'public')));

 app.use('/', index); 
 app.use('/users', users); //passport config var
 Account = require('./models/account');
 passport.use(new LocalStrategy(Account.authenticate()));
 passport.serializeUser(Account.serializeUser());
 passport.deserializeUser(Account.deserializeUser()); //mongoose
 mongoose.connect('mongodb:localhost/passport_local_mongoose_express4');

 // catch 404 and forward to error handler 
 app.use(function(req, res, next) {   
 var err = new Error('Not Found');  
 err.status = 404;  
 next(err);
 });

 // error handler app.use(function(err, req, res, next) {   // set
 locals, only providing error in development  
 res.locals.message = err.message;   
 res.locals.error = req.app.get('env') === 'development' ? err : {};

   // render the error page   res.status(err.status || 500);  
 res.render('error'); }); 
 module.exports = app;

【问题讨论】:

    标签: mongodb mongoose mean-stack


    【解决方案1】:

    您的 MongoDB 连接 URL 无效。应该是:

    mongoose.connect('mongodb://localhost/passport_local_mongoose_express4');
    

    注意mongodb:之后的//

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-29
      • 1970-01-01
      • 2016-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-09
      • 2015-12-31
      相关资源
      最近更新 更多