手机版

发起Node.js系列的获取/发布请求(2)

时间:2021-08-20 来源:互联网 编辑:宝哥软件园 浏览:

服务器和浏览器交互的主要方式是get/post请求。

让我们看看node.js发起的get/post请求

1、获取

因为get请求的参数遵循url,所以它相对简单。node.js中的url模块提供了一个解析函数来处理它。具体代码如下:

//引入模块var http=require(' http ');var URL=require(' URL ');var util=require(' util ');//创建http Server来处理请求http.createserver (function (req,RES) {res.writehead (200,{ ' content-type ' : ' text/plain ' });//解析url参数varparams=url.parse (req.url,true)。查询;Res.write('用户名:' params.name ')RES . write(' \ n ');RES . write(' password ' params . password);RES . end();}).听(8888);测试:

注意:8888端口在上述代码中被监控。

2、岗位

post请求的内容包含在请求正文中,所以它不像get请求那么简单。默认情况下,所有node.js都不会解析请求体。当你需要的时候,你需要手动去做。

//引入模块var http=require(' http ');var query string=require(' query string ');varpostml=' html heartheta charset=' utf-8 ' title node . js实例/title/Head' 'body' 'form方法='post ' ' '用户名:输入名称='name'br ' '密码:输入名称=' password' br ' '输入类型=' submit ' '/form ' '/body/html ' console . log(' prepare html ');//创建http Server来处理请求http.createserver(函数(req,RES) {console.log('输入http Server ');//定义post变量,临时存储请求体信息var body=//通过req的数据事件监听功能,在接收到请求体的数据时,累加到post变量req.on ('data ',function(chunk){ body=chunk;});Console.log('输入请求结束1 ');//end事件触发后,将post解析为真实的post请求格式req.on ('end ',function(){ body=query string . parse(body);res.writeHead(200,{ ' Content-Type ' : ' text/html;charset=utf8 ' });Console.log('输入请求结束2 ');if(body . name body . password){ RES . write(body . name);RES . write(' br ');RES . write(body . password);} else { RES . write(POStstml);} RES . end();});}).听(8888);测试:

节点终端启动成功后,浏览器输入地址http://localhost:8888,看到如下页面:

输入用户名和密码,完成写回浏览器。

3.膨胀

至此,node.js处理get和post请求的小示例已经完成。现在,是时候与过去的语言进行比较,找到一种关系,编织一个知识网络了。

3.1模块

每种语言都提供一定的“基础设施”或“基本工具”,如java/c类库。Node还提供了很多模块、功能、常用工具等。这些都在Demo的顶部介绍过,基本上可以通过看到模块的名称就能猜到它的功能。例如:

var http=require(' http ');var URL=require(' URL ');var util=require(' util ');3.2网络服务器

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

一般的架构逻辑是浏览器—— web服务器——应用服务器—— db。

Web服务器,客户端实例:

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

1)服务器

//创建http服务器http . create server(function(request,response){//解析请求,包括文件名var pathname=URL . parse(request . URL). pathname .//从文件系统读取请求的文件内容,fs.readfile (pathname.substr (1),function (err,data){//响应文件内容response . write(data . tostring());}//发送响应数据response . end();});}).听(8081);//控制台将输出以下信息console.log('运行于http://127.0.0.1:8081/'的服务器);2)客户

var http=require(' http ');//封装请求的对象varoptions={ host : ' localhost ',port:' 8081 ',path : '/index . htm ' };//处理响应的回调函数var callback=function(response){//不断更新数据var body=response.on('data ',function(data){ body=data;});回应。on ('end ',function(){//数据接收完成console . log(body);});}//向服务器发送请求var req=http.request (options,callback);req . end();执行server.js,

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

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:发起Node.js系列的获取/发布请求(2)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。