nodejs express - cant set headers

时间:2016-05-10 12:13:56

标签: node.js express cheerio requestjs

使用由express提供的web提交的值来使用request + cheerio启动抓取。

这些部分单独工作,当放在一起时我得到一个错误:发送后不能设置标题。

这里有什么问题?

router.post('/', function(req, res){

    res.json('processing')        

    crawl(r.keyword, r.tld, r.brand).then(function(d){

       userObject.urlCache = d;

     }) 
})

2 个答案:

答案 0 :(得分:0)

res.json('processing')会发送回复。发送响应后,您无法修改标头。从代码片段中不清楚在发送响应后修改响应的内容。

有关快速回复对象的更多信息:http://expressjs.com/en/api.html#res.json

还有比res.json更多的响应选项。你并不是真的在你的例子中发送json。您可能需要res.send('processing'),但这不会解决您的设置标题问题。

答案 1 :(得分:0)

您应先设置标头,然后再发送请求。

res.setHeader('charset', 'utf-8');
res.send('processing');