我使用Node.js – async & request模块来抓取超过1亿的网站,几分钟后我不断遇到错误ESOCKETTIMEDOUT & ETIMEDOUT。
我重新启动脚本后,它又可以工作了。这似乎不是连接限制的问题,因为我仍然可以做resolve4, resolveNs, resolveMx和curl没有延迟。
你觉得代码有什么问题吗?或任何建议吗?我希望将async.queue()并发性至少提升到1000。谢谢你! Continue reading
Category Archives: NodeJS
linux下安装nodejs包管理器nvm
linux下安装nodejs包管理器nvm,linux命令nvm
下载安装
0 |
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash |
0 |
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash |
next:
vim ~/.bashrc 写入下面代码
0 1 |
export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm |
下一步即可安装node
如 v6.11.0版本 Continue reading
nodejs多线程模块的安装过程记录
要安装 nodejs模块 threads_a_gogo
,处理多线程,直接安装,报错。是因为这个模块要求nodejs版本是>=0.5.1 <=6.9.2,可以我的nodejs是最新版本12.x的,也不能因为它把nodejs版本降到6.9.2呀。再一看它的更新时间,还是2017年呢,看来是没人维护了。
在github又找到一个模块node-webworker-threads,2019年2月15日最后更新,也不是很勤快,但是还算可以,安装npm install webworker-threads,报错:“…. 在此解决方案中一次生成一个项目。若要启用并行生成,请添加“/m”开关。….”。 Continue reading
nodejs升级的方法(Window、Linux)
怎么升级node版本,nodejs升级的方法(Window、Linux)
先更新一下已经安装的npm库:
0 |
npm update -g |
再用安装n命令,用n命令升级nodejs
0 1 2 3 4 5 6 7 8 9 |
# 全局安装n $ npm install -g n # 升级到最新稳定版 $ n stable # 升级到最新版 $ n latest # 升级到定制版 $ n v7.10.0 # 切换使用版本 $ n 7.10.0 (ENTER) |
删除指定版本
0 |
$ n rm 7.10.0 |
用指定的版本执行脚本
0 |
$ n use 7.10.0 some.js |
还有一种方法就是安装宝塔集成环境,之后配置nodejs环境,nodejs升级也是点点就OK的,可以参考我的另一篇关于我的一个小项目的文章配置nodejs环境:韩国演唱会抢票系统生产环境(Linux)配置记录
nodejs模块 – jsdom 中文文档
jsdom是一个纯粹由 javascript 实现的一系列 web标准,特别是 WHATWG 组织制定的DOM和 HTML 标准,用于在 nodejs 中使用。大体上来说,该项目的目标是模拟足够的Web浏览器子集,以便用于测试和挖掘真实世界的Web应用程序。
最新版本的 jsdom 运行环境需要 node.js v6或者更高的版本。(jsdom v10以下版本在 nodejs v4以下仍然可用,但是我们已经不支持维护了)
v10版本的 jsdom 拥有全新的 API(如下所述).
Continue reading
NodeJS模块-Tesseract识别验证码图片
概述
NodeJS模块-Tesseract识别验证码图片,在验证码识别上,node.js
其实也只是打酱油的角色,因为已经有成熟的工具做这个事情,而node
只需要做调度就行了。
所需工具
那么介绍一下这些工具吧
Tesseract
开源的OCR
识别工具,目前由Google
维护,支持中文,默认的识别率很低哈,特别是中文,但是可以自己提供样本,训练提高识别率。graphicsmagick
非常实用的图像处理工具,下面会讲到用途。
nodeJS-fs模块的基本使用
fs模块(系统内置模块 主要用来操作文件)
注意: 基本上所有方法都有异步和同步,基本上同步的方法 都是在异步方法后面加上 Sync
常见的文件的基本操作:
0 1 2 |
前提: 要先引入fs模块 var fs = require('fs'); |
01) 读取文件(内容)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 |
a) 异步读取 fs.readFile('要读取的文件的路径', function (err, data) { // 判断 如果有错 打印错误 if (err) { console.log('读取错误!') } // 否则 打印读取到的数据 console.log(data); }) b) 同步读取 // 直接读取 返回读取的结果 保存在data变量里面 var data = fs.readFileSync('被读取的文件的路径'); |
// 引入fs模块 Continue reading
nodejs中的promise基本操作
Javascript的特点是异步,Javascript不能等待,如果你实现某件需要等待的事情,你不能停在那里一直等待结果回来,相反,底线是使用回调callback:你定义一个函数,这个函数只有等到结果可用时才能被调用。
这种回调模型对于好的代码组织是没有问题的,但是也可以通过从原始回调切换到promise解决很多问题,将promise看成是一个标准的数据容器,这样会简化你的代码组织,可以成为基于promise的架构。 Continue reading
thinkjs框架的默认模板引擎Nunjucks的中文文档
Node 端使用
0 |
$ npm install nunjucks |
下载后可直接 require('nunjucks')
使用
浏览器端使用
可直接使用 nunjucks.js (min),如果针对编译后的模板可使用 nunjucks-slim.js (min)。 Continue reading
jsdom中文文档
jsdom是一个纯粹由 javascript 实现的一系列 web标准,特别是 WHATWG 组织制定的DOM和 HTML 标准,用于在 nodejs 中使用。大体上来说,该项目的目标是模拟足够的Web浏览器子集,以便用于测试和挖掘真实世界的Web应用程序。
最新版本的 jsdom 运行环境需要 node.js v6或者更高的版本。(jsdom v10以下版本在 nodejs v4以下仍然可用,但是我们已经不支持维护了)
v10版本的 jsdom 拥有全新的 API(如下所述).旧的 API 现在仍然支持;详细的参照文档
基本用法
0 1 |
const jsdom = require("jsdom"); const { JSDOM } = jsdom; |