res.location 未在 express (MEAN 堆栈)中设置页面 URL



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

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

我正在使用角度$scope.user和$scope.password作为输入字段的ng模型。此请求由 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 是我需要的 URL,admin.ejs 存储我要在此 URL 上呈现的 HTML。

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

请帮助我解决我可能在这里做错了什么。提前谢谢。

也许尝试使用回调渲染?

// 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()

相关内容

  • 没有找到相关文章

最新更新