簡體   English   中英

Node.js`request.get`:將主體存儲在變量中

[英]Node.js `request.get`: store body in variable

我是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 ?!

您似乎要在請求完成之前返回_body

該請求不是同步的,因此您幾乎可以肯定要定義一個回調。 在普通的JavaScript中,它將是:

fetchDepartments('https://ntst.umd.edu/soc', function (err, body) {
    console.log(body);
});

目前正在做的是:

  1. 初始化_body''
  2. 創建(但不執行!) getHandler
  3. 開始請求
  4. 返回(仍然為空) _body
  5. 記錄(空) _body
  6. 稍后:請求完成,調用getHandler
  7. getHandler()更新_body

您需要做的是使fetchDepartments接受回調函數,以便_body任何代碼處理_body可以等待,直到請求完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM