Node学习指南(第2版)
上QQ阅读APP看书,第一时间看更新

本书所面向的读者

我觉得本书的受众有两种人。

第一种是已经使用过各种库和框架搭建前端应用,现在想要将自己的JavaScript知识扩展到服务端的开发人员。

第二种是想要尝试新鲜事物,或者学习新技术的后端开发人员。这些开发人员从事过Java、C++、Ruby或者PHP的开发工作,但现在他们想要把时不时接触过的JavaScript知识体系化,并和已知的服务端知识结合起来。

这两种看似没有交集的读者有一个共同点,就是都使用JavaScript,或者可以更准确地称为ECMAScript。本书也确实要求读者对JavaScript比较熟悉。这两种读者的另外一个共同点是:都必须学习同样的Node基础知识,包括Node核心API。

然而,不同的读者,因为拥有不同的视角、不同的技能,所以学习体验也会不尽相同。为了协调一致,我会在本书从不同的视角进行讲解。比如说,一个C++或者Java程序员可能会有兴趣创建C++的Node插件,而这对于前端开发者来说可能没多少吸引力。同样,一些类似于“大端”(big-endian)的概念可能对后端开发者来说很熟悉,而对前端开发者来说可能是一头雾水。我没办法从每一种视角进行过于深入的讲解,但我会确保所有的读者都不会看不懂,或者感觉乏味。

有一件事我绝对不会做,就是强迫读者死记硬背。我们会讲到核心模块API,但是我不会逐个讲解其中的对象和函数,因为它们在Node网站上都有文档。相对而言,我会挑选每个模块中的重要方面进行讲解,或者针对Node中一些特定的重要功能进行讲解,从而给读者提供一个可以和其他Node开发人员进行交流的基础。当然了,熟能生巧,而且本书只是一个学习工具。读完本书之后,读者还需要继续对Node进行深入的探索,比如在Mongo-Express-Angular-Node(MEAN)技术栈上工作。Node中有很多方向可以选择,本书将会为读者提供一些建议。

聊聊Node文档  

写作本书之时,我和其他一些Node开发者正在进行一个关于Node.js网站现存问题的讨论,其中一点就是关于如何定义Node.js的“当前”版本,也就是说,当用户访问“这个”文档时,应该显示什么样的版本。

我最后一次参与这个讨论的时候,大家的计划是在/docs页面列出Node.js的所有当前的长期维护(LTS)版本,还要列出当前的稳定版本,同时要在页面顶端显示出当前文档的版本号。

最终,文档的维护人员想要针对每个页面生成一个版本差异(version diffs),但这将会是一个艰巨的任务。

本书出版之时,Node发布了6.0.0版本,它是当前版本,并且它不再将活跃开发分支称为稳定版(Stable)。因此,Node.js 6.0.x最终将被转至下一个LTS版本。

因为Node的版本如此之多,所以每当你访问Node API的文档网站时,一定要检查文档版本与你使用的Node版本是否一致。当然,查看一下新版文档中的新功能也没什么坏处。

 

 

Node.js就是Node 

官方名称Node.js实际上极少被人使用,所有人都称之为“Node”。本书中绝大部分地方也会使用Node来指代Node.js。