这段代码错在哪?
大家好,以下这段代码会时不时出错,请问错在哪?应该怎么写才好
var superagent = require('superagent');
var cheerio = require('cheerio');
var eventproxy = require('eventproxy');
exports.index = function(req,res,next){
var urlitems = [];
var items = [];
superagent.get('http://www.woyaogexing.com/tupian/dongman/')
.end(function(err,sres){
if(err){
return next(err);
}
var $ = cheerio.load(sres.text);
$(".txList_1").each(function(index,element){
var $element = $(element);
urlitems.push(
$element.find(".img").attr("href")
//title:$element.find('.imgTitle').text(),
//imgurl:$element.find('.lazy').attr("src")
);
});
var ep = new eventproxy();
ep.after('urlhtml', urlitems.length, function (srestext) {
// topics 是个数组,包含了 40 次 ep.emit('topic_html', pair) 中的那 40 个 pair
// 开始行动
srestext.map(function(val){
var $ = cheerio.load(val);
$('.artCont p img').each(function(index,element){
items.push({
imgurl:$(element).attr("src"),
title:$(".pifutitle h1").text(),
height:$(element).height
});
});
});
//这里就只执行一次
res.render('join', {website:"join",content:items});
});
urlitems.forEach(function (imgslink) {
superagent.get("http://www.woyaogexing.com"+imgslink)
.end(function (err, sres2) {
if(sres2){
ep.emit('urlhtml', sres2.text);
} else {
return res.status(403).send("错误");
}
});
});
});
};
```
5 回复
错误信息,是不是return 错误的时候执行了多次?
回调问题啊,你这都res.render了怎么还res.status。。。
res.status后面发了多次了
响应发送后再来设置请求头,去理解一HTTP协议吧!
utlitems.forEach
触发多次urlhtml