【发布时间】:2016-11-01 07:09:50
【问题描述】:
我设置了一个节点应用程序。当使用本地设置的 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")
});
});
});
【问题讨论】:
-
使用
docker,您将永远不必问这样的问题。 -
嘿亚当,谢谢你的提示。你能告诉我一些关于 docker 的事情吗?
-
docker.com/what-docker - 基本上,您在本地和部署的任何服务器上都有完全相同的环境
-
看起来棒极了。肯定会检查出来。谢谢亚当!
标签: node.js mongodb heroku mongoose passport.js