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 相关文章推荐
Javascript学习笔记8 用JSON做原型
Jan 11 Javascript
详细讲解JS节点知识
Jan 31 Javascript
jquery中防刷IP流量软件影响统计的一点对策
Jul 10 Javascript
js预载入和JavaScript Image()对象使用介绍
Aug 28 Javascript
JQuery for与each性能比较分析
May 14 Javascript
jquery js 获取时间差、时间格式具体代码
Jun 05 Javascript
js中opener与parent的区别详细解析
Jan 14 Javascript
JQuery插件ajaxfileupload.js异步上传文件实例
May 19 Javascript
javascript中闭包(Closure)详解
Jan 06 Javascript
AngularJs 60分钟入门基础教程
Apr 03 Javascript
node.js实现微信开发之获取用户授权
Mar 18 Javascript
详解使用React.memo()来优化函数组件的性能
Mar 19 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
网站加速 PHP 缓冲的免费实现方法
2006/10/09 PHP
解析php通过cookies获取远程网页的指定代码
2013/06/25 PHP
php读取大文件示例分享(文件操作类)
2014/04/13 PHP
自定义session存储机制避免会话保持问题
2014/10/08 PHP
smarty模板引擎之分配数据类型
2015/03/30 PHP
Div自动滚动到末尾的代码
2008/10/26 Javascript
JQuery与iframe交互实现代码
2009/12/24 Javascript
js中top/parent/frame概述及案例应用
2013/02/06 Javascript
由点击页面其它地方隐藏div所想到的jQuery的delegate
2013/08/29 Javascript
使用jquery插件qrcode生成二维码
2015/10/22 Javascript
JavaScript保留关键字汇总
2015/12/01 Javascript
jQuery实现图片文字淡入淡出效果
2015/12/21 Javascript
jQuery中的insertBefore(),insertAfter(),after(),before()区别介绍
2016/09/01 Javascript
jQuery实现的自动加载页面功能示例
2016/09/04 Javascript
9个让JavaScript调试更简单的Console命令
2016/11/14 Javascript
jQuery制作input提示内容(兼容IE8以上)
2017/07/05 jQuery
JavaScript定时器setTimeout()和setInterval()详解
2017/08/18 Javascript
r.js来合并压缩css文件的示例
2018/04/26 Javascript
详解JavaScript添加给定的标签选项
2018/09/17 Javascript
js实现简单音乐播放器
2020/06/30 Javascript
[01:16:28]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第二场 2月23日
2021/03/11 DOTA
python中enumerate的用法实例解析
2014/08/18 Python
Django集成搜索引擎Elasticserach的方法示例
2019/06/04 Python
.img/.hdr格式转.nii格式的操作
2020/07/01 Python
python如何快速生成时间戳
2020/07/21 Python
简述python Scrapy框架
2020/08/17 Python
Python中Yield的基本用法
2020/10/18 Python
CSS3中动画属性transform、transition和animation属性的区别
2016/09/25 HTML / CSS
html5 初试 indexedDB(推荐)
2016/07/21 HTML / CSS
Ootori在线按摩椅店:一家专业的按摩椅制造商
2019/04/10 全球购物
春节活动策划方案
2014/01/24 职场文书
小学毕业感言150字
2014/02/05 职场文书
社区党务公开实施方案
2014/03/18 职场文书
幼儿生日活动方案
2014/08/27 职场文书
创业计划书之酒吧
2019/12/02 职场文书
HTML+CSS 实现顶部导航栏菜单制作
2021/06/03 HTML / CSS