# node.js 启动HTTP服务
引入required模块:我们可以使用 require 指令来载入 Node.js 模块。
创建服务器:服务器可以监听客户端的请求。
接收请求与响应请求:服务器很容易创建,客户端可以使用浏览器或终端发送 HTTP 请求,服务器接收请求后返回响应数据。
下面开始创建node.js应用:
(1)引入require模块
我们使用 require 指令来载入 http 模块,并将实例化的 HTTP 赋值给变量 http,实例如下:
新建文件 http.js (D:\学习\code\demo1\http.js)
var http = require("http");
1
(2)创建服务器
接下来我们使用http.creatServer()方法创建服务器,并使用listen()方法绑定8080端口。函数通过request,response参数来接收和响应数据。实例如下:
var http = require('http');
http.createServer(function (request, response) {
// 发送 HTTP 头部
// HTTP 状态值: 200 : OK
// 内容类型: text/plain
response.writeHead(200, {'Content-Type': 'text/plain'});
// 发送响应数据 "Hello World"
response.end('Hello World\n');
}).listen(8080);
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8080/');
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
(3)启动
命令行输入
node http.js
1
(4)访问
访问http://127.0.0.1:8080/ (opens new window)
可以看到写着”Hello World”的网页
# node.js http服务端
const http = require('http');
const server = http.createServer();
var qs = require('querystring');
const hostname = '0.0.0.0';
const port = 8888;
server.listen(port, hostname, () => {
console.log(`开启服务 端口:${port}/`);
});
server.on('error', function(err) {
if (err.code === 'EADDRINUSE') {
// 端口已经被使用
console.log('端口【' + port + '】 已经被使用');
} else {
console.log('启动服务错误:' + err.message);
}
});
server.on('request', async function(req, res) {
console.log('请求方式:' + req.method);
console.log('请求URL:' + req.url);
let data = [];
req.on('data', chunk => {
//req对象启动data方法,此方法将会多次获取提交的数据,如果提交的数据量大的话。
data += chunk;
});
req.on('end', async () => {
console.log('请求数据:' + data);
let requestData = qs.parse(data);
res.setHeader('Content-Type', 'text/plain;charset=UTF-8');
res.end(JSON.stringify(requestData));
});
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# node.js http客户端
const http = require('http');
const qs = require('querystring');
var data = {
key1: '6.1.0',
key2: 'UTF-8',
}; //这是需要提交的数据
var content = qs.stringify(data);
var options = {
hostname: '127.0.0.1',
port: 8888,
path: '/test',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
},
};
let req;
req = http.request(options, function(res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function(chunk) {
console.log('BODY: ' + chunk);
});
});
req.on('error', function(e) {
console.log('problem with request: ' + e.message);
});
req.write(content);
req.end();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35