本地服务器工作,在线服务器失败 - 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?的主要内容,如果未能解决你的问题,请参考以下文章

Mongo“身份验证失败”仅适用于远程连接。本地工作正常

在 localhost 上工作的 Mongo $lookup 在 heroku 部署中停止工作

应用程序在本地连接到mongo,但是在heroku上部署时似乎会话创建失败

对于在普通 mongo 服务器中成功执行的特定查询,使用 Mongo API 的 CosmosDB 失败的原因是啥?

cmd输入mongo指令连接mongodb数据库服务端失败

图片上传可以在本地主机上工作,但不能在线