Nodejs

简易HTTP服务器搭建

2010年以前,我的机器上总是安装了很多各种各样的工具和软件,先不管用不用,先一股脑装上。Nodejs的出现给前端带来了一股清新的风,5年过去了,渐渐发现自己电脑上越来越干净了。 就单windows来说,以前必装的XAMPP或者wampserver现在都快要消失了,除非偶尔用到PHP或者MySQL,不然自己都懒得去装,需要本地调试的时候,HTTP服务器都是简单用node的http-server应付。因为node现在是必装的,所以顺带装个简单HTTP服务器也是理所当然的事。 $ npm install http-server -g 全局安装后,就可以在任意的文件夹内启动一个简单的本地HTTP服务器用作调试: $ http-server 默认端口号是8080,也可以通过-p参数指定端口号: $ http-server -p 8888 并且现在电脑里python也几乎是必装的,因为python和vs通常是编译一些npm模块的必要条件。于是,…

node编辑BT种子

在又一波净-网行动之后,迅雷倒下了,虽然这期间它居然还神奇的上市成功,但已经彻底被曾经的会员所唾弃。就目前看来,诸如百度离线之类,替代品还是有一些。回归主题内容,bt种子的内容是会被侦测的,最简单的就是内容的标题,这也是下载软件对于“敏感词”的最基本的判定。要绕过去就需要去掉这些敏感的部分。 bt种子,即torrent文件,其简单的格式定义可以在维基百科中找到。torrent包含Tracker信息和文件信息两部分,而我们需要编辑的就是文件信息。 torrent的文件信息经过Bencode编码而成,所以,要修改最简单的方法就是使用bencode editor,展开文件内容后依次修改内容。这样做完全OK,只是效率未免太低。如果碰到一大波敏感,有种要改到死的感觉。这个时候,可以求助于网上的一些在线编辑器,…

用cheerio替代jsdom减少内存泄漏

jsdom用来解析获取的页面并生成dom,在抓取页面数据的时候非常方便好用,但是,jsdom似乎存在内存泄漏的问题。在数据量较小的情况下并不明显,数据一大马上就会变得可以感知。并且window.close()的调用并不能完全解决问题,只能延缓这种泄漏的速度。 在node执行时加入--trace_gc参数可以看到内存清理的信息。下面的示例数据略乱,只是放出来看看的。 [3657] 163984 ms: Scavenge 190.5 (220.0) -> 179.2 (222.0) MB, 57…

nodejs目录遍历

近期解决一个问题的时候,需要一个简单的目录遍历。目录遍历挺常见,操作一个文件夹里的所有文件,替换或者添加删除某些东西是非常普遍的操作。由于 nodejs 本身并没有提供类似的API,所以这部分就得由自己实现。 虽然没有直接的遍历API,但是 nodejs 的文件操作也已经非常便利,用 fs.readdir 和 fs.stat 这两个API的组合就能达到目的。 出于参半程序员的懒惰的劣根性,其实在这之前我也搜索过看看是否有现成的可以拿来用,也确实有这种完善的 module,比如 node-walk,我试用过后觉得还是非常不错的: var walk = require(…

jsdom——node.js的DOM

最近一周一直在写node,感觉很爽。不过 node 虽好却没有 DOM 还是有很多不方便的地方。好在有 jsdom —— 一个 W3C DOM 的 JS 实现。用这玩意相当犀利,它不仅可以将文档解析成 DOM,而且,你还可以用 YUI 或着 jQuery 去操作生成的 DOM。这在从页面中提取数据时格外有用。 虽然在类Unix系统上安装jsdom非常简单,但在window上就要麻烦许多,下面这些依赖还得独立安装。 node-gyp…

NodeJS之始

Node.js 可以称得上是过去一年里最热门的项目,现在整个NodeJS社区也都非常活跃,不论是关注的还是围观的,都对这个项目抱有极大的兴趣。说来惭愧,虽然自己也一直想接触,但总是再三都把精力花在了其它乱七八糟的地方。既然今年下决心把重心从CSS挪回JS,NodeJS自然是不能再错过了。 我看的是著名的 Manuel Kiessling 的 The Node Beginner Book 的中文版 Node入门,超级赞的教材——也许其作者并非是JS的专家,但是绝对是写教材的天才。轻松的语言和明晰的思路,使读者花不了多久就能明白Node是个什么,以及,它能干什么。 关于node的说明我就不罗嗦了,网络上已经有太多可供参考。…