本地服务器工作,在线服务器失败 - Mongo?

时间:2016-06-29 14:00:30

标签: node.js mongodb heroku mongoose passport.js

我已经设置了节点应用。当使用本地设置的Mongo东西发布到数据库就好了。当我将数据库切换到MLab时,它会破坏应用程序。除了超时之外,我收到零错误消息。有什么想法吗?这是我的应用程序设置和失败的注册路由。似乎很奇怪,它可以在我的本地主机上完美运行但不是云吗?

// mongoose.connect("mongodb://localhost/cultureapp3");

mongoose.connect("mongodb://INFO.mlab.com:/INFO");


app.set("view-engine", "ejs");
app.engine('html', require('ejs').renderFile);
app.use(express.static("public"));
app.use(bodyParser.urlencoded({extended: true}));
app.use(flash());




// //PASSPORT CONFIG
app.use(require("express-session")({
    secret: "Hawaii.",
    resave: false,
    saveUninitialized: false
}));

app.use(passport.initialize());
app.use(passport.session());
passport.use(new LocalStrategy(User.authenticate()));
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());

app.use(function(req, res, next){
   res.locals.currentUser = req.user;
   res.locals.error = req.flash("error");
   res.locals.success = req.flash("success");
   next();
});

这是注册路线。

//handle register 
app.post("/register", function(req, res){
    var newUser = new User({username: req.body.username});
    User.register(newUser, req.body.password, function(err, user){
        if(err){ 
            req.flash("error", err.message);
            console.log(err.message)
            return res.redirect("/register");
        } 

        passport.authenticate("local")(req, res, function(){
             req.flash("success", "Successfully logged in as " + user.username);
            res.redirect("/progress")
        });

    });

});

1 个答案:

答案 0 :(得分:1)

我联系了mLab后想出来了!这么小但却是毁灭性的错误:

我试图与"<>"连接URI中我的用户名/密码周围的字符。

删除它们,它就像一个魅力。