express的中间件bodyParser详解


Posted in Javascript onDecember 04, 2014

bodyParser用于解析客户端请求的body中的内容,内部使用JSON编码处理,url编码处理以及对于文件的上传处理.

下面是一个文件上传的例子.

建立一个1.html页面

 <!DOCTYPE html>

 <html>

 <head lang="en">

     <meta charset="UTF-8">

     <title>向服务器上传文件</title>

     <script type="text/javascript">        

         function uploadFile(){

             var formData=new FormData();

             var files=document.getElementById("files").files;

             var file=files[0];

             formData.append("myfile",file);

             var xhr=new XMLHttpRequest();

             xhr.open("post","index.html",true);

             xhr.onload= function (e) {

                 if(this.status==200)

                     document.getElementById("result").innerHTML=this.response;

             };

             xhr.send(formData);

         }

     </script>

 </head>

 <body>

 请选择文件:<input type="file" id="files" name="file" />

 <input type="button" value="上传文件" onclick="uploadFile();" />

 <div id="result"></div>

 </body>

 </html>

上面的XMLHttpRequest对象与FormData对象时HTML5中的内容,不作重点讲解.用这两个对象可以将用户选取的文件上传到服务器端,.

在服务器端使用了app.use(express.bodyParser())中间件之后,代表客户端请求的http.IncomingMessage,也就是res对象就具有了一个files属性.

server.js端代码:

 var express=require("express");

 var fs=require("fs");

 var app=express();

 app.use(express.bodyParser());

 app.get("/index.html", function (req,res) {

     res.sendfile(__dirname+"/1.html");

 });

 app.post("/index.html", function (req,res) {

     var file=req.files.myfile;

     fs.readFile(file.path, function (err,data) {

         if(err) res.send("读文件操作失败");

         else{

             fs.writeFile(file.name,data, function (err) {

                 if(err) res.send("写文件操作失败.");

                 else res.send("文件上传成功");

             })

         }

     });

 });

 

 

 app.listen(1337,"127.0.0.1", function () {

     console.log("开始监听");

 });

启动服务器后,运行浏览器:

express的中间件bodyParser详解

选择文件:

express的中间件bodyParser详解

在浏览器端出现了 上传成功字样,

在服务器端也有了我们上传的文件.

express的中间件bodyParser详解

点击上传后:

另外bodyParse可以接受客户端ajax提交的json数据,以及url的处理.

Javascript 相关文章推荐
jquery 获取json数据实现代码
Apr 27 Javascript
JavaScript Event学习第十章 一些可替换的事件对
Feb 10 Javascript
一个字符串反转函数可实现字符串倒序
Sep 15 Javascript
js实例属性和原型属性示例详解
Nov 23 Javascript
jquery实现翻动fadeIn显示的方法
Mar 05 Javascript
js实现的牛顿摆效果
Mar 31 Javascript
Vue组件tree实现树形菜单
Apr 13 Javascript
JS实现AES加密并与PHP互通的方法分析
Apr 19 Javascript
vue项目优化之通过keep-alive数据缓存的方法
Dec 11 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
Dec 24 Javascript
JQuery特殊效果和链式调用操作示例
May 13 jQuery
LayUi使用switch开关,动态的去控制它是否被启用的方法
Sep 21 Javascript
express的中间件basicAuth详解
Dec 04 #Javascript
详解JS函数重载
Dec 04 #Javascript
如何让你的Lightbox支持滚轮缩放及Base64图片
Dec 04 #Javascript
javascript常用代码段搜集
Dec 04 #Javascript
5种处理js跨域问题方法汇总
Dec 04 #Javascript
用js读、写、删除Cookie代码续篇
Dec 03 #Javascript
js字符串完全替换函数分享
Dec 03 #Javascript
You might like
thinkPHP下的widget扩展用法实例分析
2015/12/26 PHP
PHP版微信第三方实现一键登录及获取用户信息的方法
2016/10/14 PHP
PHP基于curl模拟post提交json数据示例
2018/06/22 PHP
jquery遍历数组与筛选数组的方法
2013/11/05 Javascript
jquery重复提交请求的原因浅析
2014/05/23 Javascript
jquery左边浮动到一定位置时显示返回顶部按钮
2014/06/05 Javascript
利用jQuery和CSS将背景图片拉伸
2015/10/16 Javascript
jQuery实现点击弹出背景变暗遮罩效果实例代码
2016/06/24 Javascript
详解vue过滤器在v2.0版本用法
2017/06/01 Javascript
Angularjs添加排序查询功能的实例代码
2017/10/24 Javascript
js读取本地文件的实例
2017/12/22 Javascript
nginx+vue.js实现前后端分离的示例代码
2018/02/12 Javascript
JS实现的简单折叠展开动画效果示例
2018/04/28 Javascript
ES6之模版字符串的具体使用
2018/05/17 Javascript
vue基础之模板和过滤器用法实例分析
2019/03/12 Javascript
Python中SOAP项目的介绍及其在web开发中的应用
2015/04/14 Python
Python 列表(List) 的三种遍历方法实例 详解
2017/04/15 Python
浅谈Pandas Series 和 Numpy array中的相同点
2019/06/28 Python
python函数的万能参数传参详解
2019/07/26 Python
如何基于Python爬取隐秘的角落评论
2020/07/02 Python
Django3中的自定义用户模型实例详解
2020/08/23 Python
python操作toml文件的示例代码
2020/11/27 Python
利用CSS3实现单选框动画特效示例代码
2016/09/26 HTML / CSS
HTML5标签与HTML4标签的区别示例介绍
2013/07/18 HTML / CSS
澳大利亚婴儿喂养品牌:Cherub Baby
2018/11/01 全球购物
毕业生个人的求职信范文
2013/12/03 职场文书
校园餐饮创业计划书
2014/01/10 职场文书
病媒生物防治方案
2014/05/13 职场文书
音乐教师个人工作总结
2015/02/06 职场文书
2016年学校十一国庆节活动总结
2016/04/01 职场文书
慰问信的写作格式及范文!
2019/06/24 职场文书
用人单位的规章制度,怎样制定才是有效的?
2019/07/09 职场文书
详解Js模块化的作用原理和方案
2021/04/29 Javascript
Java网络编程之UDP实现原理解析
2021/09/04 Java/Android
php双向队列实例讲解
2021/11/17 PHP
mysqldump进行数据备份详解
2022/07/15 MySQL