【问题标题】:Node.js URL POST rewriteNode.js URL POST 重写
【发布时间】:2014-08-29 03:36:45
【问题描述】:

我在js文件中有这个函数:

exports.authentication = function(req, res) {
   // ..
   // user validation
   // ..

   res.redirect('/login');   
};

如何将所有 POST 请求重写到不同的路径,例如 /admin/XY,即 /admin/login 而不是 /login在我的例子中?我现在可以对其进行硬编码,但我希望 .redirect() 会自动将其附加到所有项目文件中的所有 POST 请求中。

【问题讨论】:

  • 你用的是哪个编辑器?
  • 对不起,先生,我不想使用文本编辑器进行替换操作。是否可以将其编码为 Express()?我已经在为我的 GET 请求使用 url_rewrite,如下所示:exports.temp_rewrite = function() { return function (req, res, next) { req.url = '/admin' + req.url; next(); } } ,但现在不知道如何为 POST 请求执行此操作。
  • 重定向方法支持相对路径:expressjs.com/4x/api.html#res.redirect也许这已经解决了你的问题?
  • @masch,你是对的!我使用的是“pathname-relative”重定向,而不是“mount-relative”重定向。在我的情况下,重定向应该是:res.redirect('login'); 谢谢!

标签: javascript node.js url url-rewriting


【解决方案1】:

使用此代码,您可以在验证后使用相同的url failureRedirect

app.post('/login', passport.authenticate('local-login', {    
            successRedirect : '/profile', // redirect to the secure profile section    
            failureRedirect : '/login', // redirect back to the signup page if there is an error    
            failureFlash : true // allow flash messages    
}));

【讨论】:

    【解决方案2】:

    使用此代码重定向您 url 中的所有发布请求。

    app.post('^*$', function(req, res) {
      res.redirect('/postRedirectUrl');
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-11
      • 1970-01-01
      • 2017-03-02
      • 1970-01-01
      • 2014-08-10
      • 2014-04-16
      • 1970-01-01
      • 2014-08-16
      相关资源
      最近更新 更多