【发布时间】:2018-07-12 13:28:52
【问题描述】:
我正在用 JavaScript 编写一个发送特定 URL 的 HTTP 请求的类。我正在尝试使用 Mocha 测试该类,但由于某种原因,方法 fetchUrl() 返回undefined。我似乎无法弄清楚为什么。我一天前就开始用 JavaScript 编写代码,因此我仍在努力学习和适应它。
fetchUrl () {
var request = require('request')
var res
request(this.url, function (error, response, body) {
console.log('error:', error) // Print the error if one occurred
if (response.statusCode !== 200) {
console.log('received status code other than 200 OK')
this.error = true
}
res = response
console.log('statusCode:', response && response.statusCode) // Print the response status code if a response was received
// console.log('body:', body) // Print the HTML for the requested url.
this.html = body
})
return res
}
describe('Test Http request to google.com', function () {
it('should return 200', function (done) {
assert.equal(httpCon.fetchUrl().statusCode, 200)
done()
})
})
【问题讨论】:
-
fetchURL正在返回 undefined,因为res未在 return 语句之前定义,并且您期望在异步代码中进行定义。
标签: javascript node.js mocha.js chai node-request