我是Node.js的新手,很抱歉这可能是一个愚蠢的问题......
这是我的代码:
#!/usr/bin/env coffee --bare
# 3rd party
request = require('request')
request.defaults({'encoding': 'utf8'})
module.exports.fetchDepartments = fetchDepartments
fetchDepartments = (url) ->
_body = ''
getHandler = (error, response, body) ->
util.debug "HTTP response code: #{response.statusCode}"
if error
util.error error
else
_body = body
request.get(url, getHandler)
_body
console.log fetchDepartments('https://ntst.umd.edu/soc/')
控制台正在打电话给util.debug()
,但似乎_body
仍为空字符串。
...如何从HTTP响应中存储HTML?!?
答案 0 :(得分:2)
您似乎在请求完成之前返回_body
。
请求不是同步的,因此您几乎肯定会想要定义回调。在纯JavaScript中,那将是:
fetchDepartments('https://ntst.umd.edu/soc', function (err, body) {
console.log(body);
});
当前做的是:
_body
初始化为''
getHandler
_body
_body
getHandler
getHandler()
更新_body
您需要做的是使fetchDepartments
接受回调函数,以便任何代码进程_body
都可以等到请求完成。