



本节介绍Node.js的相关知识,包括它的过去、现在和未来发展,同时也会介绍如何在不同的操作系统中安装Node.js。
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,其标志如图2-1所示。从开发者角度来说,原本运行在Web浏览器中的JavaScript代码,现在可以运行在任何装有Node.js的环境中。
图2-1 Node.js标志
也就是说,伴随着Node.js的发布,JavaScript从一个只能运行在网页端的脚本语言,成了一个可以和PHP、Python及Perl等语言相媲美,甚至从某些意义上讲更为强大的语言。
Node.js对一些特殊用例进行了优化,提供了替代的API,这使得Chrome V8在非浏览器环境中运行得更好。Chrome V8引擎执行JavaScript的速度非常快,性能非常好。Node.js本质上是一个基于Chrome JavaScript运行时建立的平台,可以方便地搭建响应速度快、易于扩展的网络应用。Node.js使用事件驱动、非阻塞I/O模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。
Node.js在2009年由Ryan Dahl封装并开发,至今已经有十多年的历史,版本也更加趋于稳定,社区和平台也逐步成熟,大量的开发者为社区的繁荣做出了贡献。目前,很多高流量网站都采用了Node.js进行开发或在原本的项目中加入了Node.js层进行优化。
本小节介绍如何在Windows平台上安装Node.js。相比Linux等其他平台的Node.js而言,Windows平台的Node.js出现较晚,但是在微软的支持下,Windows平台的Node.js安装方法承袭了Windows应用程序的一贯作风,只需要下载一个安装程序,双击安装即可。
(1)使用浏览器打开https://nodejs.org网站,进入Node.js官网,页面如图2-2所示。
图2-2 Node.js官网
Node.js分为两个不同的版本:LTS和Current。在Windows 64位系统中提供了LTS(Long Term Support)版本,版本号为10.16.3,还有Current版本,版本号为12.9.0。
注意: LTS版本是长期支持的稳定版本,即该版本内容稳定,除了重大的安全性问题外,不会为其增加新的功能和特性,也不会更改其主要内容。Current版本是根据当前项目的开发进度实时更新的可发布版本,包含最新的性能优化和代码优化,但版本中会有一些Bug。
对于线上运行的稳定环境或开发时环境,推荐使用LTS版本。版本的选择还要参考不同的框架,因为某些内容可能需要使用新版本的Node.js,老版本的Node.js可能无法运行,此时便需要升级至最新的版本。
(2)选择LTS版本,单击LTS下载按钮,自动下载安装程序。
(3)下载完成后,双击打开该程序,如图2-3所示。
图2-3 安装Node.js
(4)等待其自动检测安装环境后,Next按钮亮起,单击该按钮,进入条款和许可说明对话框,如图2-4所示。勾选同意选项,再次单击Next按钮进入下一步。
图2-4 条款说明
(5)在进入的对话框中选择程序的安装目录,然后再单击Next按钮。也可以选择性地安装Node.js,如图2-5所示。
图2-5 选择需要安装的内容
(6)选择好需要安装的内容后出现Install按钮,单击该按钮开始安装,等到进度条走到100%时,则说明安装成功,如图2-6所示。单击Finish按钮,即可完成Node.js的安装。
图2-6 安装完成
(7)检测是否成功安装了Node.js。使用快捷键Win+R打开“运行”对话框,输入cmd命令后单击“确定”按钮,如图2-7所示。
图2-7 “运行”对话框
(8)在命令行窗口中输入node –v命令,如果显示正确的Node.js版本号,而非提示“不是内部或外部命令,也不是可运行的程序或批处理文件”,则说明Node.js安装成功,如图2-8所示。
图2-8 运行node –v命令
注意: 如果Node.js安装成功却无法在命令行中使用,有可能是权限问题,因为该安装目录并非在环境变量中,需要手动将Node.js的安装目录(默认为C:\Program Files\nodejs\)加入环境变量中,如图2-9所示。
图2-9 Node.js的环境变量
Linux是常用的服务器系统,也是免费和开源的系统。一个项目在正式的生产环境中运行时必须提供一个Linux运行环境,Node.js自然也提供了可以在Linux平台中使用的安装包。
不同于Windows中使用鼠标“一路”单击进行安装,服务器上的Linux系统不一定包含GUI界面,因此管理员只能通过SSH远程连接该主机。此时,需要使用终端安装Node.js,具体步骤如下:
注意: Linux系统存在大量不同的发行版本,每个版本都有自己不同的命令或格式。本书以流行的Linux发行版Ubuntu(乌班图)的中文发行版Kylin为例。
(1)通过SSH登录至服务器,或使用已经安装的任何Linux版本打开其终端,页面如图2-10所示。
图2-10 终端页面
(2)下载Node.js。因为不同版本的软件安装方法不一定通用,所以我们使用下载官方包的形式进行安装。在终端输入如下命令,会自动下载Node.js安装包。
wget https://nodejs.org/dist/v10.16.3/node-v10.16.3-linux-x64.tar.xz
注意: 如果使用的是模拟器或非root管理员账号,请使用su root命令切换至root管理员账户,获取权限后再安装程序。同样,不同版本的Node.js安装包下载后的名称也是不同的,请注意文件名称。
Node.js下载完成后如图2-11所示。
图2-11 下载Node.js安装包
(3)使用ls命令查看下载的文件,下载文件是一个压缩包,需要使用如下命令解压,解压结果如图2-12所示。
tar -Jxf node-v10.16.3-linux-x64.tar.xz
图2-12 解压文件
(4)解压结束后,使用cd命令进入解压后的文件夹node-v10.16.3-linux-x64.tar。
(5)使用cd命令进入node-v10.16.3-linux-x64文件夹中的bin文件夹,通过ll命令可以查看其中的文件,如图2-13所示。
图2-13 查看bin文件夹
(6)测试Node.js的命令。在该文件夹中使用如下命令,即可获取Node.js的版本号。
./node –v
屏幕打印显示:v10.16.3
在Windows中,可以在任何路径下调用node命令,但在Linux系统中,node命令只能在此路径的文件夹下调用,在其他文件夹下使用时必须提供准确的路径,这样并不简便。
为了更简单地使用node命令,需要将其加入环境变量中,或在Linux系统中使用软连接的方式将node和npm这两个文件放入/usr/local/bin文件夹中,这样在任何地方就都能使用该命令了。
注意: Linux中的软连接可以理解为Windows系统中的快捷方式。
软连接的建立使用ln命令,具体如下:
# 将node放入
ln -s /home/st/download/node-v10.16.3-linux-x64/bin/node /usr/local/bin/
node
# 将npm放入
ln -s /home/st/download/node-v10.16.3-linux-x64/bin/npm /usr/local/bin/
npm
完成后的效果如图2-14所示,在任意文件夹下都可以直接使用node命令和npm命令。
图2-14 Node.js安装成功
本小节正式使用Node.js进行开发。首先是所有开发人员都需要编写的第一个例程:Hello World。首先导入所需要的模块,Node.js为开发者提供了require命令进行导入。
【示例2-1】 编写Hello World示例。
新建一个JavaScript文件,命名为Hello World.js,在其中引入HTTP包,同时实例化一个返回结果,并挂载在本地的3000端口中,代码如下:
01 //引入HTTP包
02 const http = require('http');
03
04 http.createServer(function (request, response) {
05 //返回HTTP头部信息
06 //返回HTTP相应的状态码:200(请求成功)
07 //返回数据内容的类型:text/plain
08 //指定返回的code以及形式
09 response.writeHead(200, {'Content-Type': 'text/html});
10
11 //发送HTML文档内容
12 //打印输出一个<h1>元素
13 response.end('<h1>Hello World</h1>');
14 }).listen(3000);
15
16 //通过console打印相关的提示信息
17 console.log('Server running at http://127.0.0.1:3000/');
使用cd命令进入JavaScript.js文件所在的文件夹,然后使用node命令执行代码,如图2-15所示。
图2-15 成功运行node命令
如果成功运行,则命令提示符处会出现一个闪动的光标,没有任何的错误和警告提示。此时在浏览器中输入http://127.0.0.1:3000,可以看到显示效果,如图2-16所示。
图2-16 输出Hello World
这样就完成了第一个最简单的Node.js项目。