2016-06-29 99 views
0

我有一個節點應用程序設置。當使用本地設置的Mongo的東西發佈到數據庫就好了。當我將數據庫切換到MLab時,它打破了應用程序。除了超時外,我收到了零錯誤消息。有什麼想法嗎?這是我的應用程序設置和註冊路線失敗。似乎很奇怪,它可以在我的本地主機上完美工作,但不是雲端?本地服務器工作,在線服務器失敗 - Mongo?

// 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

使用'docker',你永遠不會問這樣的問題。 – Adam

+0

嘿亞當,謝謝你的提示。你能告訴我一些關於碼頭工人嗎? – AndrewLeonardi

+0

https://www.docker.com/what-docker - 基本上你在本地和你部署的任何服務器上都有完全相同的環境 – Adam

回答

1

接觸mLab後我想到了這個!這樣一個小但具有破壞性的錯誤:

我試圖在連接URI中使用我的用戶名/密碼周圍的「<>」字符連接。

刪除這些,它就像一個魅力。

相關問題