Node.js系列之发起get/post请求(2)

2020-06-17 05:46:58易采站长站整理

3、扩展

到此,node.js处理get和post请求的小例子就做完了。现在,应该和过去的语言对比找关系,编织知识网了。

3.1模块

每种语言都提供了一定的“基础设施”或者叫“基础工具”,比如java/c++的类库。node也提供了很多模块、函数、常用工具等,引入的位置在Demo的最上方,看到模块的名字基本上就能猜到它的功能。
比如:


var http=require('http');
var url=require('url');
var util=require('util');

3.2Web服务器

Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL,与客户端的网络浏览器配合。

大致的架构逻辑是:Browser——>Web Server——>Application Server——>DB。

web服务器、客户端实例:

需要引入http模块,使用createServer方法创建。
注意:这里就不详细介绍了,只说明主要流程。

1)Server


//创建http服务器
http.createServer( function (request, response) {
// 解析请求,包括文件名
var pathname = url.parse(request.url).pathname;

// 从文件系统中读取请求的文件内容,
fs.readFile(pathname.substr(1), function (err, data) {

// 响应文件内容
response.write(data.toString());
}
// 发送响应数据
response.end();
});
}).listen(8081);

// 控制台会输出以下信息
console.log('Server running at http://127.0.0.1:8081/');

2)Client


var http = require('http');

// 封装请求的对象
var options = {
host: 'localhost',
port: '8081',
path: '/index.htm'
};

// 处理响应的回调函数
var callback = function(response){
// 不断更新数据
var body = '';
response.on('data', function(data) {
body += data;
});

response.on('end', function() {
// 数据接收完成
console.log(body);
});
}
// 向服务端发送请求
var req = http.request(options, callback);
req.end();

执行server.js,

然后执行client.js,然后就可以获得index.html的内容了。