node07-http
目录:
node01-创建服务器
node02-util
node03-events
node04-buffer
node05-fs
node06-path
node07-http
node08-express
node09-cookie
http模块:
文件上传:
html:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>post</title> 6 <link rel="stylesheet" href="post.css"> 7 </head> 8 <body> 9 <form action="/post" method="post" enctype="multipart/form-data"> 10 用户名:<input type="text" name="user"><br> 11 密码:<input type="password" name="pass"><br> 12 <input type="file" name="fileup"><br> 13 <input type="submit" value="提交"> 14 </form> 15 <div id="time">time</div> 16 </body> 17 <script src="post.js"></script> 18 </html>
js:
1 window.onload = function(){ 2 var time = document.getElementById("time"); 3 var timer = setInterval(function(){ 4 var ajax = new XMLHttpRequest(); 5 ajax.open("get","/ajax?user=zhaoyang&pass=123",true); 6 ajax.send(); 7 ajax.onload = function(){ 8 time.innerHTML = ajax.responseText; 9 } 10 },1000); 11 12 }
node(文件上传与get、post请求处理):
1 /* 2 * http:超文本传输协议 3 * http模块:能够搭建服务器环境(模拟的客服端环境) 4 * 5 * */ 6 7 var http = require("http"); 8 var url = require("url"); 9 var fs = require("fs"); 10 var formidable = require("formidable"); 11 var server = http.createServer(function (request,response) { 12 // console.log(request.url); 13 var urlObj = url.parse(request.url,true); 14 // console.log(urlObj); 15 // console.log(request.method); 16 // response.end("响应结束"); 17 18 if(urlObj.pathname == "/10post.html" || urlObj.pathname == "/"){ 19 //访问表单页面 20 var rs = fs.createReadStream("10post.html"); 21 rs.pipe(response); 22 // response.end();不能带end() 23 }else if(urlObj.pathname == "/post"){ 24 // console.log(urlObj); 25 // request.on("data",function(chunk){ 26 // console.log(chunk); 27 // }); 28 29 var form = new formidable.IncomingForm(); 30 form.parse(request,function (err,fields,files) { 31 // console.log(fields); 32 console.log(files); 33 console.log(files.fileup.path);//文件上传的临时路径 files.fileup.path 34 fs.createReadStream(files.fileup.path).pipe(fs.createWriteStream("./upload/" + files.fileup.name)); 35 36 }); 37 response.end(); 38 }else if(urlObj.pathname == "/ajax"){ 39 var newTime = new Date(); 40 response.end(newTime.toString()); 41 }else if(urlObj.pathname == "/req"){ 42 console.log(urlObj.query); 43 var result= ""; 44 request.on("data",function(chunk){ 45 result += chunk.toString(); 46 }); 47 request.on("end",function(err){ 48 response.end("参数是" + result); 49 }) 50 response.end("参数是" + JSON.stringify(urlObj.query)); 51 }else if(urlObj.pathname != "/favicon.ico"){ 52 //其他的所有页面 53 // ./post.css 54 console.log(urlObj.pathname); 55 fs.createReadStream("." + urlObj.pathname).pipe(response); 56 } 57 }); 58 server.listen(2333);
GET、POST请求:
1 var http = require("http"); 2 var request = http.request({ 3 host:"localhost", 4 port:"2333", 5 path:"/req?user=zhaoyang&pass=123", 6 // path:"/req", 7 method:"POST", 8 },function (res) { 9 console.log(res.statusCode); 10 var result = ""; 11 res.on("data",function(chunk){ 12 result += chunk; 13 }); 14 res.on("end",function(err){ 15 console.log(result); 16 }); 17 }); 18 request.write('{"user":"zhaoyang","pass":"123"}'); 19 request.end();//结束请求体