2016-06-29 3 views
0

Ich habe eine Knoten App eingerichtet. Bei der Verwendung eines lokalen Setups von Mongo-Sachen posten Sie es in die Datenbank. Wenn ich die Datenbank in MLab umschalte, bricht sie die App. Ich bekomme keine weiteren Fehlermeldungen, außer dass das Timing abgelaufen ist. Irgendwelche Gedanken? Hier ist meine App eingerichtet und die Registrierung Route, die fehlschlägt. Scheint seltsam, dass es perfekt auf meinem lokalen Host funktioniert, aber nicht in der Cloud?Lokaler Server funktioniert, Online-Server schlägt fehl - 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(); 
}); 

Hier ist die Registrierung Route.

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

Verwenden Sie "Docker", und Sie werden nie eine Frage wie diese stellen müssen. – Adam

+0

Hey Adam, danke für den Tipp. Kannst du mir etwas über Docker erzählen? – AndrewLeonardi

+0

https://www.docker.com/what-docker - im Grunde haben Sie genau die gleiche Umgebung auf lokalen und auf jedem Server, den Sie bereitstellen – Adam

Antwort

1

Ich habe dies nach dem Kontakt mit mLab herausgefunden! Solch ein kleiner, aber vernichtender Fehler:

Ich habe versucht, mit den "<>" Zeichen um meinen Benutzernamen/Passwort in der Verbindung URI zu verbinden.

Entfernt diese und es funktioniert wie ein Charme.