【问题标题】:Node>Expressjs res.render not redirectingNode>Expressjs res.render 不重定向
【发布时间】:2013-12-04 04:33:17
【问题描述】:

我正在使用 nodejs 和 express 开发应用程序。我有登录页面。我正在发布用户数据,如果没有用户拥有该数据,那么我想重定向页面。但是 res.render 不起作用(我在我的代码中添加了 res.render 的注释,例如“//如果找不到用户则重定向”。不知道。这是我的代码:

var mongoose = require('mongoose');
mongoose.connect("mongodb://localhost/fuatblog");
var UserSchema = new mongoose.Schema({
    name: String,
    email: String,
    password: String,
    age: Number
}),
    Users = mongoose.model('Users', UserSchema);
app.post('/sessions', function (req, res) {

    console.log(req.body.user.email);
    console.log(req.body.user.password);
    Users.find({
        email: req.body.user.email,
        password: req.body.user.password
    }, function (err, docs) {
        if (! docs.length) {
            // no results...

            console.log('User Not Found');
            //res.status(400);
             //Redirect if user not found
             return res.render(__dirname + "/views/login", {
                    title: 'Giriş',
                    stylesheet: 'login',
                    error: 'Email or password is wrong.'
                });
        }

        console.log('User found');
        req.session.email = docs[0].email;
        console.log(req.session.email);
    });

    return res.redirect('/Management/Index');    
});

【问题讨论】:

    标签: node.js express


    【解决方案1】:

    当用户未被识别时,您希望调用的.render 方法在异步代码中。这意味着一旦请求到达您的服务器,就会调用return res.redirect('/Management/Index');。但是,一旦您从Users.find 获得结果,您就应该这样做。即:

    app.post('/sessions', function (req, res) {
    
        console.log(req.body.user.email);
        console.log(req.body.user.password);
        Users.find({
            email: req.body.user.email,
            password: req.body.user.password
        }, function (err, docs) {
            if (! docs.length) {
                // no results...
                console.log('User Not Found');
                //res.status(400);
                 //Redirect if user not found
                 return res.render(__dirname + "/views/login", {
                    title: 'Giriş',
                    stylesheet: 'login',
                    error: 'Email or password is wrong.'
                });
            }
            console.log('User found');
            req.session.email = docs[0].email;
            console.log(req.session.email);
            return res.redirect('/Management/Index');
        });
    
    });
    

    【讨论】:

      猜你喜欢
      • 2015-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-23
      • 2020-06-27
      • 2016-12-20
      • 1970-01-01
      相关资源
      最近更新 更多