Browsersync中间件:从帖子请求重定向

时间:2016-02-14 22:10:31

标签: node.js express browser-sync

我们在开发中使用browsersync。对于付款确认,付款提供商会回复到预定义的网址。

问题是,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没有定义?我认为浏览器同步是基于快递?
  2.   
  3. 我如何访问帖子请求的正文? req.body返回undefined
  4.   

1 个答案:

答案 0 :(得分:4)

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

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

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

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