【问题标题】:Browsersync middleware: Redirect from a post requestBrowsersync 中间件:从发布请求重定向
【发布时间】:2016-05-25 17:29:55
【问题描述】:

我们正在开发中使用 browsersync。对于付款确认,付款提供商回传到预定义的 url。

问题是,Browsersync 只显示Cannot POST /payment/success

所以我正在考虑编写一个中间件,它接受 POST 请求并重定向到与 GET 请求相同的 URL。问题是,我不确定浏览器同步是否可行。当我尝试调用res.redirect('/') 时,它会抛出一个错误:

    browserSync.init
        server:
            baseDir: "...."
            index: "/statics/master.html"
            middleware: [
                modRewrite(['!\\.\\w+$ /statics/master.html [L]']),
                (req, res, next) ->
                    res.redirect('/') # this throws a TypeError: res.redirect is not a function
            ]
  1. 为什么没有定义res.redirect?我以为浏览器同步是基于 express 的?
  2. 如何访问发布请求的正文? req.body 返回undefined

【问题讨论】:

    标签: node.js express browser-sync


    【解决方案1】:

    browserSync 使用Connect 作为中间件,并且不像 Express 那样共享相同的 api。

    对于重定向,您至少可以执行以下操作:

    res.writeHead(301, {Location: url});
    res.end();
    

    查看他们的文档以访问请求正文。 Middleware 中关于正文解析的部分可能会为您带来一些结果。

    【讨论】:

      猜你喜欢
      • 2019-06-08
      • 2015-07-22
      • 2020-08-18
      • 1970-01-01
      • 2018-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-17
      相关资源
      最近更新 更多