本系列笔记我们学习JavaScript语言的服务端运行时Node.js,着重介绍Node.js的模块机制和内置库。对于基础的JavaScript语言这里就不重复介绍了,具体可以参考Web前端
相关章节。
Node.js官网:https://nodejs.org/en/
JavaScript语言最初被设计为浏览器端执行的脚本语言,专门用于操作HTML的DOM结构,为了执行JavaScript脚本,Chrome浏览器中内置了高性能的V8引擎。Node.js的作者则将V8引擎抽取出来并编写了一套库,使得JavaScript可以编写通用程序,Node.js就这样诞生了。
JavaScript是一个事件驱动的语言,Node.js利用这个特点,能让开发人员较简单的编写出基于事件驱动的高性能服务端程序,同时V8引擎本身也比较先进,具有很好的性能,因此Node.js在IO密集型应用领域是一个值得考虑的方案。除此之外,Node.js的出现也极大的丰富了JavaScript语言的生态,目前许多流行的前端工具都是由JavaScript本身编写的,不会使用Node.js和npm,也同样难以迈入前端开发的门槛。
另一方面,JavaScript的生态还很年轻,技术更新很快,难免导致发展比较畸形,对此我们应该理性看待,不要盲目跟风,也不要无脑黑,这些问题都会随着这门技术越来越成熟而得到改观。
我们可以在官网找到Downloads页面,其中提供了LTS(长期支持)版本和最新版本,实际开发中我们一般选择LTS版本。
对于Windows操作系统,建议直接下载.zip
格式的压缩包,对于Linux操作系统如果作为开发环境,也建议使用压缩包方式下载,如果是服务器环境还是建议从对应发行版的软件源中安装。
压缩包下载解压完成后,我们还需要配置环境变量。以Windows为例,我们直接将Node.js的目录加入环境变量Path即可。
配置完成后,我们可以使用node -v
查看是否安装成功。
在工程目录下,执行npm init
即可创建一个Node.js工程。
我们可以根据提示输入项目名、版本、描述、入口文件等,npm init
命令根据这些信息创建工程的package.json
描述文件,这里我们也可以使用npm init -y
跳过这些输入操作全部使用默认值。有关package.json
的内容可以参考Web前端/Web客户端编程/开发工具链/npm
章节。
创建好package.json
后,我们就可以创建JavaScript源代码文件了,我们这里简单编写一段JavaScript代码,在控制台上输出一段信息。
index.js
console.log('Hello, world!');
然后使用以下命令即可执行代码:
node index.js
当然,我们也可以在pacakge.json
中编写启动命令,然后使用npm run
方式启动项目,和前端工程开发中使用的各种Node.js编写的工具用法是类似的,这里就不多介绍了。
Node.js和前端的JavaScript代码区别是很明显的:
前者的执行环境是node,我们可以调用其内置的模块实现各种功能,但要注意Node.js中没有window
、document
等对象,调用这些对象会报错。
后者的执行环境是Chrome、Firefox等浏览器,由用户的浏览器下载并执行,我们可以调用BOM、DOM等API控制浏览器中显示的内容,代码则被牢牢限制在浏览器沙箱中,不可以实现直接操作文件系统等功能。