NodeJS Callback
NodeJS Callback
我一直在学习一系列关于如何在Node JS 中进行一些web抓取的教程
(我是个十足的傻瓜,所以对一件事的任何见解,无论多么基本,都会有所帮助)
我一直在试图找到一种将数组"url"保存到文本文件的方法,但遇到了几个问题——这是异步的,因为链接收集需要时间,而且我无法真正理解回调在Node中是如何工作的。
到目前为止,我拥有的是:
var request = require('request');
var cheerio = require('cheerio');
var links = [];
request('http://www.reddit.com', function(err, resp, body){
if(!err && resp.statusCode == 200){
var $ = cheerio.load(body);
$('a.title', '#siteTable').each(function(){
var url = $(this).attr('href');
urls.push(url);
});
console.log(links);
}
});
我想简单地将整个"部分"暂停,这样可以给它足够的时间来编译链接列表,但我想看看什么是更干净、更正确的方法。
有人能告诉我如何使用回调,这样我就可以设置一个打印函数来保存输出吗?
除了一个错误,一切看起来都很好。你没有声明一个名为urls
的数组,但你正在向它推进。只需将urls.push(url);
更改为links.push(url);
,就可以获得
var request = require('request');
var cheerio = require('cheerio');
var links = [];
request('http://www.reddit.com', function(err, resp, body){
if(!err && resp.statusCode == 200){
var $ = cheerio.load(body);
$('a.title', '#siteTable').each(function(){
var url = $(this).attr('href');
links.push(url);
});
console.log(links);
}
});
相关文章:
- nodejs-expressjs上传图像并显示它们
- TypeError:在不兼容的接收器nodejs上调用了方法Uint8Array.length
- NodeJS-readline暂停和恢复事件发射器(逐行读取)
- NodeJS日期格式不起作用
- 在下划线中使用_(obj).map(callback)和_.map(obj,callback)之间的区别
- Nested Q.all nodejs
- Nodejs API控制器,用于在API之间切换
- 否'访问控制允许来源'标头存在于IISNOde中请求的资源(AngularJS+NodeJs)上
- 如何在大型nodeJS代码的基础上逐步引入typescript
- 在Nodejs中Express输入DEBUG=app时权限被拒绝/bin
- 无法使用nodeJS在html中设置Image src
- 与域在同一台计算机上运行的NODEJS服务器的CORS错误
- NodeJS API调用中Array中的Push和Pull元素
- 基于api密钥的NodeJS web服务
- 在gump和nodejs中使用Typescript时,未定义对require和exports的引用
- “util.inherits”和在NodeJS中扩展原型之间的区别
- NodeJS Callback
- 在nodejs中使用twitter oauth时无法获取/auth/twitter/callback
- Nodejs readline callback
- nodejs: TypeError: callback不是一个函数