基于nodejs+express4.X实现文件下载的实例代码


Posted in NodeJs onJuly 13, 2017

之前写了一个关于基于nodejs+express4.X实现文件下载实例,最近需要回顾,就顺便发到随笔上了

在nodejs的express框架中,下载变得非常简单,就一个方法,res.download()

首先express命令行生成项目基本框架: 不会的看这里:https://3water.com/article/118537.htm

看看api

基于nodejs+express4.X实现文件下载的实例代码

看看源码

基于nodejs+express4.X实现文件下载的实例代码

其实底层还是res.sendFile(),头部也已经设定好了.

测试

1.在public文件夹下放入1.jpg图片和1.txt文件

2.在index.js里添加路由方法

router.get('/download', function (req, res,next) { 
 var q = req.query; 
 if (q.type == 'jpg') { 
 
 //相对路径 
 res.download('public/1.jpg'); 
 }else if (q.type == 'txt') { 
 
 //绝对路径 
 res.download(`F:/testredis/public/1.txt`); 
 }else{ 
 res.send('错误的请求'); 
 } 
});

3.浏览器访问:

http://localhost:3000/download?type=1
http://localhost:3000/download?type=jpg
http://localhost:3000/download?type=txt

第一个会提示错误,第二个会下载图片,第三个会下载txt文件.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
nodejs中使用多线程编程的方法实例
Mar 24 NodeJs
nodejs如何获取时间戳与时间差
Aug 03 NodeJs
使用nodejs下载风景壁纸
Feb 05 NodeJs
初识NodeJS服务端开发入门(Express+MySQL)
Apr 07 NodeJs
详解nodejs微信公众号开发——6.自定义菜单
Apr 13 NodeJs
深入解析nodejs HTTP服务
Jul 25 NodeJs
nodejs发送http请求时遇到404长时间未响应的解决方法
Dec 10 NodeJs
nodejs微信开发之接入指南
Mar 17 NodeJs
NodeJs 实现简单WebSocket即时通讯的示例代码
Aug 05 NodeJs
Nodejs实现图片上传、压缩预览、定时删除功能
Oct 25 NodeJs
nodejs中使用worker_threads来创建新的线程的方法
Jan 22 NodeJs
ubuntu系统下使用pm2设置nodejs开机自启动的方法
May 12 NodeJs
详解nodejs的express如何自动生成项目框架
Jul 12 #NodeJs
nodejs中sleep功能实现暂停几秒的方法
Jul 12 #NodeJs
nodejs中解决异步嵌套循环和循环嵌套异步的问题
Jul 12 #NodeJs
深入学习nodejs中的async模块的使用方法
Jul 12 #NodeJs
nodejs后台集成ueditor富文本编辑器的实例
Jul 11 #NodeJs
nodejs开发微信小程序实现密码加密
Jul 11 #NodeJs
nodejs接入阿里大鱼短信验证码的方法
Jul 10 #NodeJs
You might like
php cout<<的一点看法
2010/01/24 PHP
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
2013/06/28 PHP
php学习笔记之基础知识
2014/11/08 PHP
php实现的mongodb操作类实例
2015/04/03 PHP
php使用APC实现实时上传进度条功能
2015/10/26 PHP
浅析Yii2集成富文本编辑器redactor实例教程
2016/04/25 PHP
yii使用bootstrap分页样式的实例
2017/01/17 PHP
Javascript面向对象编程(三) 非构造函数的继承
2011/08/28 Javascript
javascript常用对话框小集
2013/09/13 Javascript
简介JavaScript中strike()方法的使用
2015/06/08 Javascript
zepto与jquery的区别及zepto的不同使用8条小结
2016/07/28 Javascript
jquery实现表单获取短信验证码代码
2017/03/13 Javascript
javascript实现Java中的Map对象功能的实例详解
2017/08/21 Javascript
Vue2.0 给Tab标签页和页面切换过渡添加样式的方法
2018/03/13 Javascript
实例讲解JavaScript预编译流程
2019/01/24 Javascript
详解Vue、element-ui、axios实现省市区三级联动
2019/05/07 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
node中使用log4js4.x版本记录日志的方法
2019/08/20 Javascript
vue.js 解决v-model让select默认选中不生效的问题
2020/07/28 Javascript
[02:43]DOTA2英雄基础教程 圣堂刺客
2013/12/09 DOTA
[02:47]DOTA2亚洲邀请赛 HR战队出场宣传片
2015/02/07 DOTA
Python导入txt数据到mysql的方法
2015/04/08 Python
python print输出延时,让其立刻输出的方法
2019/01/07 Python
浅析python redis的连接及相关操作
2019/11/07 Python
PHP基于phpqrcode类库生成二维码过程解析
2020/05/28 Python
Django web自定义通用权限控制实现方法
2020/11/24 Python
意大利体育用品网上商城:Nencini Sport
2016/08/18 全球购物
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
美国隐形眼镜网:Major Lens
2018/02/09 全球购物
设计师珠宝:Ylang 23
2018/05/11 全球购物
N:Philanthropy官网:美国洛杉矶基础款服装
2020/06/09 全球购物
主持人开幕词
2015/01/29 职场文书
教师节随笔
2015/08/15 职场文书
Python操作CSV格式文件的方法大全
2021/07/15 Python
Vue中Object.assign清空数据报错的解决方案
2022/03/03 Vue.js
Nginx虚拟主机的配置步骤过程全解
2022/03/31 Servers