0

使用由 express 提供的 webfrom 提交的值使用 request + Cheerio 启动爬网。

这些部件单独工作,放在一起时出现错误:发送后无法设置标题。

这里有什么问题?

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

    res.json('processing')        

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

       userObject.urlCache = d;

     }) 
})
4

2 回答 2

0

res.json('processing')将发送响应。发送响应后,您无法修改标头。从您的代码片段中不清楚在发送响应后是什么在修改响应。

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

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

于 2016-05-10T13:06:30.363 回答
0

您应该先设置标头,然后将请求发送出去。

res.setHeader('charset', 'utf-8');
res.send('processing');
于 2016-05-10T15:07:02.170 回答