小编Blu*_*ueS的帖子

如何配置MongoDB从域名访问?

我有一个域mydoma.in和一个使用 Apache 运行 Bitnami 的 VPS 和一个 MongoDB 服务器,我可以使用 IP:27017(公共 IP,而不是内部 IP)连接。使用 cloudflare,我能够创建一个子域db.mydoma.in并指向我的 VPS 的 IP。由于我的VPS上有Apache,所以访问db.mydoma.in成功并显示出首页的html页面。但我无法使用 mongodbclient 连接到我的 MongoDB 服务器db.mydoma.in:27017,甚至无法db.mydoma.in:27017使用 webbrowser 进行访问(我知道通常它会抱怨我使用了错误的协议)。我怎样才能做到这一点?反向代理是另一回事,所以我认为这不是这里的问题。先感谢您!

mongodb

6
推荐指数
0
解决办法
1900
查看次数

每次请求都要更改会话

我有登录功能

app.post('/doLogin', function(req,res){
        db.users.findOne({username: req.body.username}, function(err, user) {
            if( err ) {
                console.log("Login fail");
            } 
            else if (user != null) {
                if (req.body.password == user.password) {
                    req.session.user_role = "user";
                    req.session.save();
            } else {
                req.session.user_role = "null";
                console.log("Wrong login");
            }
        }
        res.send({redirect: "/"});
    });

});
Run Code Online (Sandbox Code Playgroud)

此函数用于将变量保存到会话中req.session.user_role = "user"; 但是当新请求检查用户是否登录时

app.get('/', function(req,res){
    redis.get('sess:' + req.session.id, function(err, result){
        console.log("Get session: " + util.inspect(JSON.parse(result),{ showHidden: true, depth: null }));
    });
    if ((req.session.user_role == "user")) {
          console.log("Logged in");
    } else {
        console.log("Logged out");
    } …
Run Code Online (Sandbox Code Playgroud)

session redis node.js

2
推荐指数
1
解决办法
8173
查看次数

标签 统计

mongodb ×1

node.js ×1

redis ×1

session ×1