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 相关文章推荐
js 静态动态成员 and 信息的封装和隐藏
May 29 Javascript
js数组Array sort方法使用深入分析
Feb 21 Javascript
JS对象与json字符串格式转换实例
Oct 28 Javascript
AngularJS自动表单验证
Feb 01 Javascript
JS控制FileUpload的上传文件类型实例代码
Oct 07 Javascript
Angular.js中用ng-repeat-start实现自定义显示
Oct 18 Javascript
JS实现的驼峰式和连字符式转换功能分析
Dec 21 Javascript
js使用Replace结合正则替换重复出现的字符串功能示例
Dec 27 Javascript
jQuery插件jqGrid动态获取列和列字段的方法
Mar 03 Javascript
通过源码分析Vue的双向数据绑定详解
Sep 24 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
Apr 08 Javascript
微信小程序BindTap快速连续点击目标页面跳转多次问题处理
Apr 08 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 图片加水印与上传图片加水印php类
2010/05/12 PHP
php中使用$_REQUEST需要注意的一个问题
2013/05/02 PHP
浅谈PHP的反射API
2017/02/26 PHP
php通过header发送自定义数据方法
2018/01/18 PHP
阿里对象存储OSS在laravel框架中的使用方法
2019/10/13 PHP
JavaScript继承方式实例
2010/10/29 Javascript
javascript结合Canvas 实现简易的圆形时钟
2015/03/11 Javascript
果断收藏9个Javascript代码高亮脚本
2016/01/06 Javascript
JS防止网页被嵌入iframe框架的方法分析
2016/09/13 Javascript
简单实现js倒计时功能
2017/02/13 Javascript
微信小程序实现带刻度尺滑块功能
2017/03/29 Javascript
在node中如何使用 ES6
2017/04/22 Javascript
vue.js实现刷新当前页面的方法教程
2017/07/05 Javascript
js实现会跳动的日历效果(完整实例)
2017/10/18 Javascript
精读《Vue3.0 Function API》
2020/05/20 Javascript
JS检测浏览器开发者工具是否打开的方法详解
2020/10/02 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
Python中的默认参数实例分析
2018/01/29 Python
Python实现模拟登录网易邮箱的方法示例
2018/07/05 Python
ipad上运行python的方法步骤
2019/10/12 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
2020/07/13 Python
荷兰天然和有机产品网上商城:BigGreenSmile.nl
2020/07/26 全球购物
澳大利亚领先的时尚内衣零售商:Bras N Things
2020/07/28 全球购物
计算机专业毕业生求职信分享
2013/12/24 职场文书
中学生学雷锋活动心得体会
2014/03/10 职场文书
2014年学习委员工作总结
2014/11/14 职场文书
2014年科研工作总结
2014/12/03 职场文书
项目安全员岗位职责
2015/02/15 职场文书
2015年惩防体系建设工作总结
2015/05/22 职场文书
欢送会主持词
2015/07/01 职场文书
2015年学校教研室主任工作总结
2015/07/20 职场文书
辞职离别感言
2015/08/04 职场文书
七年级作文之关于奶奶
2019/10/29 职场文书
国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程
2021/10/05 Javascript
Win10防火墙白名单怎么设置?Win10添加防火墙白名单方法
2022/04/06 数码科技