本地服务器工作,在线服务器失败 - Mongo?
Posted
技术标签:
【中文标题】本地服务器工作,在线服务器失败 - Mongo?【英文标题】:Local server works, online server fails - Mongo? 【发布时间】: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 - 基本上,您在本地和部署的任何服务器上都有完全相同的环境
看起来棒极了。肯定会检查出来。谢谢亚当!
【参考方案1】:
我在联系 mLab 后发现了这一点!这样一个小而毁灭性的错误:
我试图用连接 URI 中我的用户名/密码周围的“”字符进行连接。
删除了这些,它就像一个魅力。
【讨论】:
以上是关于本地服务器工作,在线服务器失败 - Mongo?的主要内容,如果未能解决你的问题,请参考以下文章
在 localhost 上工作的 Mongo $lookup 在 heroku 部署中停止工作
应用程序在本地连接到mongo,但是在heroku上部署时似乎会话创建失败