2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > [Node.js]get/post请求

[Node.js]get/post请求

时间:2019-11-08 01:11:00

相关推荐

[Node.js]get/post请求

摘要

在很多情况下,我们的web服务器都需要接受客户端浏览器传递的参数或者数据。最常见的是get和post请求。

获取get请求的内容

get请求传递的参数在url中,参数部分在?后面。因此可以手动解析后面的内容作为get请求的参数。node.js中url模块中的parse函数提供了这个功能。

一个例子

var http=require("http");var url=require("url");var util=require("util");http.createServer(function(request,response){response.writeHead(200,{"Content-Type":"text/plain"});response.end(util.inspect(url.parse(request.url,true)));}).listen(5544);

启动服务器

浏览器访问

使用parse解析url中的参数

webserver.js核心代码如下:

var http=require("http");var url=require("url");var util=require("util");function start(route){function onRequest(request,response){response.writeHead(200,{"Content-Type":"text/plain"});//解析url参数var params=url.parse(request.url,true).query;response.write("my name is "+params.name);response.end();};http.createServer(onRequest).listen(5544);console.log("web server has started.");};exports.start=start;

route.js代码如下:

function route(pathname){console.log("request the route "+pathname);};exports.route=route;

user.js代码如下

var server=require("./webserver");var router=require("./router");server.start(router.route);

启动webserver

浏览器浏览

post请求

post请求的内容全部在请求体中,http.ServerRequest并没有一个属性内容为请求体,原因是等待请求体传输可能是一件耗时的工作。

比如上传文件,而很多时候我们可能并不需要理会请求体内容,恶意的post请求会大大消耗服务器资源,所以node.js默认是不会解析请求体的,当你需要的时候,需要手动来做。

一个例子

var http=require("http");var url=require("url");var util=require("util");var querystring=require("querystring");function start(route){function onRequest(request,response){//定义一个post变量,用于暂时村塾请求体信息。var post='';//通过request的data事件监听函数,每当接受到请求的数据,就累加到post变量中request.on("data",function(chunk){post+=chunk;});//在end事件触发后,通过querystring.parse将post解析为真正的post请求格式,

然后想客户端返回。request.on("end",function(){post=querystring.parse(post);response.end(util.inspect(post));});response.writeHead(200,{"Content-Type":"text/plain"});//解析url参数var params=url.parse(request.url,true).query;response.write("my name is "+params.name);response.end();};http.createServer(onRequest).listen(5544);console.log("web server has started.");};exports.start=start;

学习资料

/nodejs/node-js-get-post.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。