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 相关文章推荐
基于MooTools的很有创意的滚动条时钟动画
Nov 14 Javascript
JQuery扩展插件Validate 2通过参数设置验证规则
Sep 05 Javascript
JavaScript也谈内存优化
Jun 06 Javascript
jQuery中DOM树操作之复制元素的方法
Jan 23 Javascript
jQuery中通过ajax的get()函数读取页面的方法
Feb 29 Javascript
jQuery复制节点用法示例(clone方法)
Sep 08 Javascript
最全面的百度地图JavaScript离线版开发
Sep 10 Javascript
JS制作适用于手机和电脑的通知信息效果
Oct 28 Javascript
express如何使用session与cookie的方法
Jan 30 Javascript
JS简单获取并修改input文本框内容的方法示例
Apr 08 Javascript
微信小程序的tab选项卡的实现效果
May 15 Javascript
vue路由切换时取消之前的所有请求操作
Sep 01 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 使用curl模拟登录人人(校内)网的简单实例
2016/06/06 PHP
PHP定义字符串的四种方式详解
2018/02/06 PHP
用window.location.href实现刷新另个框架页面
2007/03/07 Javascript
jquery 插件开发方法小结
2009/10/23 Javascript
将文本输入框内容加入表中的js代码
2013/08/18 Javascript
JS如何判断移动端访问设备并解析对应CSS
2013/11/27 Javascript
javascritp添加url参数将参数加入到url中
2014/09/25 Javascript
IE下支持文本框和密码框placeholder效果的JQuery插件分享
2015/01/31 Javascript
jquery实现Ctrl+Enter提交表单的方法
2015/07/21 Javascript
详解AngularJS如何实现跨域请求
2016/08/22 Javascript
jQuery实现点击某个div打开层,点击其他div关闭层实例分析(阻止冒泡)
2016/11/18 Javascript
Javascript之面向对象--接口
2016/12/02 Javascript
探讨跨域请求资源的几种方式(总结)
2016/12/02 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
2016/12/08 Javascript
js 原型对象和原型链理解
2017/02/09 Javascript
bootstrap时间插件daterangepicker使用详解
2017/10/19 Javascript
JS中getElementsByClassName与classList兼容性问题解决方案分析
2019/08/07 Javascript
vue2路由方式--嵌套路由实现方法分析
2020/03/06 Javascript
python 解析html之BeautifulSoup
2009/07/07 Python
Python Web开发模板引擎优缺点总结
2014/05/06 Python
视觉直观感受若干常用排序算法
2017/04/13 Python
Python实现桶排序与快速排序算法结合应用示例
2017/11/22 Python
python2.7 json 转换日期的处理的示例
2018/03/07 Python
NumPy 数学函数及代数运算的实现代码
2018/07/18 Python
Python pandas自定义函数的使用方法示例
2019/11/20 Python
Python数据可视化:饼状图的实例讲解
2019/12/07 Python
python飞机大战pygame游戏背景设计详解
2019/12/17 Python
python3 kubernetes api的使用示例
2021/01/12 Python
巴西独家产品和现场演示购物网站:Shoptime
2019/07/11 全球购物
乌克兰网上珠宝商店:GoldSoveren
2020/03/31 全球购物
抽象方法、抽象类怎样声明
2014/10/25 面试题
大学生求职简历的自我评价
2013/10/21 职场文书
大队委员竞选稿
2015/11/20 职场文书
python中24小时制转换为12小时制的方法
2021/06/18 Python
php双向队列实例讲解
2021/11/17 PHP
JS前端轻量fabric.js系列之画布初始化
2022/08/05 Javascript