node.js中express模块创建服务器和http模块客户端发请求
首先下载express模块,命令行输入
npminstallexpress
1.node.js中express模块创建服务端
在js代码同文件位置新建一个文件夹(www_root),里面存放网页文件等,就可以在浏览器中访问了
varexpress=require("express"); varpath=require("path"); varapp=express(); //目录(当前目录下的www_root目录) app.use(express.static(path.join(process.cwd(),"www_root"))); //监听 varserver=app.listen(6080); app.get('/',function(req,res){ //发送数据 res.send('HelloWorld~~~~~~~~~~~~!'); }); //get,处理响应 app.get("/login",function(request,respones){ console.log("/logincomming"); //服务器收到请求后,获取客户端get操作参数 console.log(request.query); //服务器回信息给客户端 respones.send("已连接上服务器~~"); }); app.post("/upload",function(request,respones){ console.log("/uploadcomming"); //获得url上传来的参数 console.log(request.query); //获得用户给我们发送过来的数据 //监听我们的data来获得 request.on("data",function(data){ console.log(data.toString()); respones.send("UPLOADOK"); }); });
2.http模块客户端发请求
(实例1)http_get测试
varhttp=require("http"); /* callback(is_success,data/erro) */ functionhttp_get(ip,port,url,params,callback){ //创建一个http.ClientRequest对象 varoptions={ host:ip, port:port, path:url+"?"+params, method:"GET", }; varrequest=http.request(options,function(incoming_msg){ console.log("getrespones"); }); //发送这个请求 request.end(); } http_get("127.0.0.1",6080,"/login","uname=jadeshu&upw=123456",function(is_ok,data){ });
(实例2)http_get、http_post测试
varhttp=require("http"); /* [100]="Continue", [101]="SwitchingProtocols", [200]="OK", [201]="Created", [202]="Accepted", [203]="Non-AuthoritativeInformation", [204]="NoContent", [205]="ResetContent", [206]="PartialContent", [300]="MultipleChoices", [301]="MovedPermanently", [302]="Found", [303]="SeeOther", [304]="NotModified", [305]="UseProxy", [307]="TemporaryRedirect", [400]="BadRequest", [401]="Unauthorized", [402]="PaymentRequired", [403]="Forbidden", [404]="NotFound", [405]="MethodNotAllowed", [406]="NotAcceptable", [407]="ProxyAuthenticationRequired", [408]="RequestTime-out", [409]="Conflict", [410]="Gone", [411]="LengthRequired", [412]="PreconditionFailed", [413]="RequestEntityTooLarge", [414]="Request-URITooLarge", [415]="UnsupportedMediaType", [416]="Requestedrangenotsatisfiable", [417]="ExpectationFailed", [500]="InternalServerError", [501]="NotImplemented", [502]="BadGateway", [503]="ServiceUnavailable", [504]="GatewayTime-out", [505]="HTTPVersionnotsupported", } */ /* callback(is_success,data/erro) */ //get请求的参数,是带在URL的地址上面的 functionhttp_get(ip,port,url,params,callback){ //step1,创建一个http.ClientRequest varoptions={ host:"127.0.0.1", port:port, path:url+"?"+params, method:"GET" }; //当有请求返回的时候,参数就会被传递为http.IncomingMessage varreq=http.request(options,function(incoming_msg){ console.log("responesstatus"+incoming_msg.statusCode); //监听IncomingMessage的data事件,当收到服务器发过来的数据的时候,触发这个事件 incoming_msg.on("data",function(data){ if(incoming_msg.statusCode===200){ callback(true,data); } }); }); //把这个请求发送出去 req.end(); } /* http_get("127.0.0.1",6080,"/login","uname=blake&upwd=123456",function(is_ok,data){ if(is_ok){ console.log(data.toString()); } }); */ //post可以带body数据传到服务器 functionhttp_post(ip,port,url,params,body,callback){ //step1,创建一个http.ClientRequest varoptions={ host:"127.0.0.1", port:port, path:url+"?"+params, method:"POST", headers:{ "Content-Type":"application/x-www-form-urlencoded", "Content-Length":body.length } }; varreq=http.request(options,function(incoming_msg){ console.log("responesstatus"+incoming_msg.statusCode); //监听IncomingMessage的data事件,当收到服务器发过来的数据的时候,触发这个事件 incoming_msg.on("data",function(data){ if(incoming_msg.statusCode===200){ callback(true,data); } }); }); //step2写入body数据 req.write(body); //发送请求 req.end(); } http_post("127.0.0.1",6080,"/upload","filename=my_file.txt","HelloHtppPost",function(is_ok,data){ if(is_ok){ console.log("upload_success",data.toString()); } });
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接