res.location没有在express(MEAN堆栈)中设置页面url

时间:2017-05-12 13:47:10

标签: javascript node.js express routing mean-stack

我需要一个受密码保护的硬编码页面。我使用href重定向到页面/ admin / user / password:

    <a ng-href="/admin/{{user}}/{{password}}" class="form-control btn btn-primary" >Submit</a>

我使用angular $ scope.user和$ scope.password作为输入字段的ng-models。此请求由Express route.get函数捕获:

    app.route('/admin/:user/:password')
     .get(admin.renderAdmin);

以下是我的admin.renderAdmin页面:

exports.renderAdmin = function (req, res) {
console.log("Requested with username and password");

if (req.params.user === "*******" && req.params.password === "******") {

    res.location('/admin');
    res.render('admin');

} else {
    res.send(null);
}
};

/ admin是我需要的网址,admin.ejs存储我要在此网址上呈现的html。

我得到的输出是页面呈现admin.ejs,但url没有变化,它与href相同。

请帮助我解决我在这里可能做错的事情。提前谢谢。

1 个答案:

答案 0 :(得分:0)

也许尝试使用回调渲染?

// if a callback is specified, the rendered HTML string has to be sent explicitly
res.render('admin', function(err, html) {
  res.location('/admin');
  res.send(html);
});

此外,如果您希望页面实际更改,则应使用res.redirect()而不是res.location()