首页 > 代码库 > node的express中间件之bodyParser
node的express中间件之bodyParser
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=http://www.mamicode.com/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="http://www.mamicode.com/上传文件" 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的处理.
node的express中间件之bodyParser
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。