三、第三节 最简单的http服务
今天我们来介绍一下nodeJS服务端的开发,nodeJS服务端的开发相对于使用C或C++服务来说要简单很多,那为什么会有这样的效果呢?最主要有两方面的原因。
第一个原因就是nodeJS本身就提供了很多功能强大的模块,我们只要使用这些模块就能开发出各种各样的服务端程序,另外一个方面是由于是有很多第三方的公司和个人开发者开发出了很多不错的模块,我们也可以直接拿过来用。 换句话说,就是nodeJS的整个儿的这个生态链,所以这样我们可以找到各种各样的这个模块儿,然后经过排列组合就可以达到我们想要的效果,那么我们就举一个具体的例子来看看如何开发一个nodeJS服务端程序。
我们这个例子就是开发一个最简单的Http服务,其实开发这样一个服务通过nodeJS是非常简单的,只要执行下面几步就可以做到了。
require引入http模块
第一步是使用require引入http模块,那么这个http模块nodeJS自己支持的,这个require就相当于java中的inport关键字,所以大家一对比就比较好理解了。
创建http服务
第二步是通过引入的Http模块然后调用创建Http服务方法,那么就将Http服务给创建成功了。
侦听端口
第三步就是指定你要侦听的端口,比如我们常用的8080,或者我们真正对外开放的80端口。你只要指定端口,那么整个http服务就算开发完成并且能够处理正常的http请求了。
我们创建一个文件夹https_server,里面创建一个文件server.js
// 使用严格模式, 方式js语法漏洞
'use strict'
// 1、引入http模块
var http = require('http');
var fs = require('fs');
// 2、使用http创建一个服务 ip地址监听所有网卡
var app = http.createServer(function(req, res){
// 设置一个http头 200表示响应成功
res.writeHead(200, {'Content-Type': 'text/plain'});
// 输出Hello world
res.end('HTTPS:Hello World!\n');
}).listen(8080, '0.0.0.0');
// 这样最简单的服务程序就算写完了
我们现在将这个服务启动起来,因为之前我们已经将nodeJS装好了。
直接输入 node server.js
我在开一个命令行窗口登录以后,输入 netstat -ntpl
就可以查到所有的TCP的端口,我们可以看到8080处于侦听状态,他所在的ip就是0.0.0.0,也就是说如果我这台机子双网卡或者三网卡的话,三个网卡所绑定的每一个ip地址都可以接受这个请求,如果你是一个网卡的话那就无所谓了。
下面我们可以通过浏览器访问这个请求
这样就可以访问了
但是现在遇到一个问题,就是当我们关闭命令行之后,也就是Ctrl+C之后,服务也就停止了。
但是我们一般关闭命令行窗口,服务仍然在运行的,这里就直接结束了,这个是什么原因呢?那就是因为他没有在后台运行。
所以说我们在启动nodeJS的时候有很多种方式 ,那么第一种就是
node 服务文件名.js
这样就可以将服务起来,当你窗口关闭的时候,这个服务就自动结束了。所以就不能称之为服务端程序,服务端程序要一直运行才行。
第二种方式 通过
nohub node 服务名.js &
如:nohub node server.js &
但是这种方式它的日志输出会有问题
第三种方式 通过
安装 forever
npm install forever -g
MAC 下
sudo npm install forever -g
运行 forever start 服务.js
如: forever start server.js
forever最终还是调的node命令将node启动起来,但是他直接将node设置成后台运行的状态。
停止 forever stop 服务名.js
如: forever stop server.js
这时就停止了
我们检查一下正在侦听的端口
netstat -ntpl
我们发现就 没有8080端口了
netstat -ntpl | grep 8080
那么这节我们介绍如何通过nodeJS开发一个最简单的服务端程序就到此结束了。
还没有评论,来说两句吧...