仍在学习节点。基于以下内容: https://github.com/request/request
var request = require('request');
request('http://www.google.com', function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body) // Show the HTML for the Google homepage.
}
})
我希望将上面的内容创建为可重用的代码块,以为我将它包装在一个函数中,并将URL作为参数传递,如:
var request = require('request');
var URL;
var request = require('request');
request('http://www.google.com', function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body) // Show the HTML for the Google homepage.
}
})
function fetchURL (URL) {
request(URL, function (error, response, body) {
if (!error && response.statusCode == 200) {
return body;
}
});
};
var a = fetchURL('http://www.google.com');
console.log(a);
这有效但我不确定是否需要“返回体”,因为它也可以在没有这条线的情况下工作。很高兴收到关于我的编码风格的评论,因为这对我来说都是新的。
答案 0 :(得分:0)
Node中的模式是提供回调作为异步函数的参数。按照惯例,此回调函数将error
作为其第一个参数。例如:
function fetchURL(url, callback) {
request(url, function(error, response, body) {
if (!error && response.statusCode == 200) {
callback(null, body);
} else {
callback(error);
}
});
};
fetchURL('http://www.google.com', function(err, body) {
console.log(body);
});
请注意,在您的代码段中,return body;
是从传递到fetchURL()
的匿名回调函数返回的。 fetchURL()
本身不返回任何内容。