本文介绍了用Express创建基本nodejs web程序的方法,及如何用pm2管理nodejs的web程序
基本的功能和开发环境
Express是node.js的一个Web应用程序开发框架,这里演示了如何用Express实现web应用程序的路由功能。Visual Studio Code是微软2015年发布的免费的跨平台代码编辑工具,支持Windows,Mac和Linux,下面介绍在学习express开发nodejs web应用时的基本过程时,截图中使用的是VSC。
新建目录和package
先新建一个目录myweb,然后在新建的目录下执行npm init建新的包。
之后执行npm install express安装express模块。
新建index.js文件
在VSC的File菜单中选New File,创建一个名为index.js的文件如下:
先创建express的实例app
然后通过get方法,解析收到的get请求中的URL,来实现路由的功能,为简单起见,这里只是演示了根据请求的URL的不同,在控制台输出不同的值,而不是迁移到新的web页面。
- 调用get方法,当收到请求的URL中包含’listUsers‘时,调用回调函数,这里回调函数没有解析请求的内容,直接返回’Page contains all…’。
- get方法,当收到请求的URL中包含’/user*‘前缀时,返回’Request arrived for …’。
最后创建node服务器的实例,添加一个监听端口8900,并且在控制台显示服务器地址和端口号
运行index.js
在terminal窗口中输入node index.js,可以看到terminal窗口中显示出回调函数的输出‘server running at http://:::8900’,’::'表示服务器的地址是localhost
在浏览器中访问node服务器
在浏览器的地址栏中输入’localhost:8900/user name’并回车。服务器在收到请求后,解析请求的URL,匹配成功‘user’开头字符串,调用对应的回调函数,返回’Request arrived for user…’。
如果在浏览器的地址栏中输入入’localhost:8900/listUsers’并回车,服务器在收到请求后,就会返回’Page contains all…’。 从而验证了用get函数实现路由的功能。
Express的Response对象的方法
下表是Express的response对象的一些重要的方法:
用pm2管理Express应用
pm2是常用的node.js应用的管理工具。首先在terminal窗口中执行’npm install -g pm2’来安装pm2。
下面是使用pm2的一些基本功能来管理index.js应用的例子。
用pm2启动应用index.js,id为0的应用index被启动了。
可以看到应用index.js的状态online。
在terminal中输入pm2 monit。将显示pm2管理的应用如下:
如果要停止indes.js应用的运行,执行‘pm2 stop index.js’,如果要停止所有的应用,可以执行’pm2 stop all’
执行pm2 delete index.js,删除应用index.js
可以看到id=0的应用被删除了。
为了能使用多个应用的实例来管理和平衡负载,可以同时运行应用的多个实例。如,在Terminal窗口中执行:‘pm2 start index.js -i 5’, 会同时运行index.js的五个实例。在上图中显示的id 0~4的5个名为index的应用,就是同时开启了多个index.js的实例,同时运行同一应用的多个实例时,Mode显示为cluster,即多实例多进程,相应的fork表示单实例多进程。
cluster的应用实例:
在Terminal窗口中执行npm install cluster,安装cluster模块。
在js文件中导入cluster模块,然后判断worker是否存在,不存在的话就创建3个worker。
运行cluster exercise.js
三个worker被启动的窗口。
尝试依次将三个worker窗口关闭。从pm2的监控窗口看到,当三个worker都被关闭时,在控制台显示’master at work…’,并再次启动三个worker。