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 学习之旅 (2)
Feb 05 Javascript
有道JavaScript监听浏览器的问题
Jun 23 Javascript
javascript 函数调用的对象和方法
Jul 01 Javascript
jquery 圆形旋转图片滚动切换效果
Jan 19 Javascript
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
Feb 03 Javascript
Javascript绝句欣赏 一些经典的js代码
Feb 22 Javascript
jQuery中$.each()函数的用法引申实例
May 12 Javascript
AngularJS基础 ng-non-bindable 指令详细介绍
Aug 02 Javascript
Angular.JS中指令ng-if的注意事项小结
Jun 21 Javascript
VSCode搭建Vue项目的方法
Apr 30 Javascript
深入了解Vue.js 混入(mixins)
Jul 23 Javascript
Vue自定义铃声提示音组件的实现
Jan 22 Vue.js
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
六酷社区论坛HOME页清新格调免费版 下载
2007/03/07 PHP
php共享内存段示例分享
2014/01/20 PHP
php中将一段数据存到一个txt文件中并显示其内容
2014/08/15 PHP
thinkphp的静态缓存用法分析
2014/11/29 PHP
php通过递归方式复制目录和子目录的方法
2015/03/13 PHP
PHP调用其他文件中的类
2018/04/02 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
2019/10/21 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
2020/07/13 PHP
ajax 同步请求和异步请求的差异分析
2011/07/04 Javascript
jquery中文乱码的多种解决方法
2013/06/21 Javascript
Jquery的hover方法让鼠标经过li时背景变色
2013/09/06 Javascript
window.location.href的用法(动态输出跳转)
2014/08/09 Javascript
基于jquery实现导航菜单高亮显示(两种方法)
2015/08/23 Javascript
编写高质量JavaScript代码的基本要点
2016/03/02 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
jQuery实现可移动选项的左右下拉列表示例
2016/12/26 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
2018/04/01 Javascript
详解在React里使用&quot;Vuex&quot;
2018/04/02 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
2018/10/30 Javascript
jQuery点击页面其他部分隐藏下拉菜单功能
2018/11/27 jQuery
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
2019/01/23 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
2020/10/29 Javascript
Vue组件简易模拟实现购物车
2020/12/21 Vue.js
python中list常用操作实例详解
2015/06/03 Python
将Python的Django框架与认证系统整合的方法
2015/07/24 Python
python实现K最近邻算法
2018/01/29 Python
python自动12306抢票软件实现代码
2018/02/24 Python
python二维键值数组生成转json的例子
2019/12/06 Python
Django Xadmin多对多字段过滤实例
2020/04/07 Python
matplotlib 三维图表绘制方法简介
2020/09/20 Python
Python3使用tesserocr识别字母数字验证码的实现
2021/01/29 Python
突袭HTML5之Javascript API扩展2—地理信息服务及地理位置API学习
2013/01/31 HTML / CSS
大学生求职简历的自我评价范文
2013/10/12 职场文书
优秀部门获奖感言
2014/02/14 职场文书
责任心演讲稿
2014/05/14 职场文书