nodejs res.send()回调函数中的数据

a()函数接受一个url,能够获取html源码
b()函数接受返回的源码,然后处理加工,返回一个obj
所以,b()直接写在a()函数的res.on('end',function(){return b(html)})里面

所以实际的代码是这样的

//爬取到的html源码
var obj=null

//b函数处理爬取的源码然后处理返回一个结果
var newHtml=''
app.post('/',function(req,res){
    var obj=a(req.body.url)
    
    res.send()    
    })
    })

那我怎么才能拿到这个obj,res.send()啊??

如果可以的话,能说一下原理是什么吗

阅读 6k
1 个回答

这里是异步编程,所以在end函数里返回处理的结果

//爬取到的html源码
var html = ''

//b函数处理爬取的源码然后处理返回一个结果
var newHtml = ''
app.post('/', function(req, resp) {
    http.get(req.body.url, function(res) {
        //巴拉巴拉。。这里获取了整个html的源码 html
        res.on('end', function() {
            //对爬取的结果进行处理
            var newHtml = b(html)
            resp.send(newHtml)//等处理完了再发送
        })

        //res.send(newHtml)//异步,这里发送时,newHTML = ''
    })
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题