标签:des style blog http io ar color os 使用
bodyParser用于解析客户端请求的body中的内容,内部使用JSON编码处理,url编码处理以及对于文件的上传处理.
下面是一个文件上传的例子.
建立一个1.html页面
1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <title>向服务器上传文件</title> 6 <script type="text/javascript"> 7 function uploadFile(){ 8 var formData=new FormData(); 9 var files=document.getElementById("files").files; 10 var file=files[0]; 11 formData.append("myfile",file); 12 var xhr=new XMLHttpRequest(); 13 xhr.open("post","index.html",true); 14 xhr.onload= function (e) { 15 if(this.status==200) 16 document.getElementById("result").innerHTML=this.response; 17 }; 18 xhr.send(formData); 19 } 20 </script> 21 </head> 22 <body> 23 请选择文件:<input type="file" id="files" name="file" /> 24 <input type="button" value="上传文件" onclick="uploadFile();" /> 25 <div id="result"></div> 26 </body> 27 </html>
上面的XMLHttpRequest对象与FormData对象时HTML5中的内容,不作重点讲解.用这两个对象可以将用户选取的文件上传到服务器端,.
在服务器端使用了app.use(express.bodyParser())中间件之后,代表客户端请求的http.IncomingMessage,也就是res对象就具有了一个files属性.
server.js端代码:
1 var express=require("express"); 2 var fs=require("fs"); 3 var app=express(); 4 app.use(express.bodyParser()); 5 app.get("/index.html", function (req,res) { 6 res.sendfile(__dirname+"/1.html"); 7 }); 8 app.post("/index.html", function (req,res) { 9 var file=req.files.myfile; 10 fs.readFile(file.path, function (err,data) { 11 if(err) res.send("读文件操作失败"); 12 else{ 13 fs.writeFile(file.name,data, function (err) { 14 if(err) res.send("写文件操作失败."); 15 else res.send("文件上传成功"); 16 }) 17 } 18 }); 19 }); 20 21 22 app.listen(1337,"127.0.0.1", function () { 23 console.log("开始监听"); 24 });
启动服务器后,运行浏览器:
选择文件:
在浏览器端出现了 上传成功字样,
在服务器端也有了我们上传的文件.
点击上传后:
另外bodyParse可以接受客户端ajax提交的json数据,以及url的处理.
标签:des style blog http io ar color os 使用
原文地址:http://www.cnblogs.com/guoyansi19900907/p/4121997.html