Node.js实现本地客户端上传单个或者多个文件Excel文件(xls格式、xlsx格式文件)到服务器端,并且解析对应的Excel内容反馈到请求报文中
注意,前情提示:
本代码基于《Node.js(nodejs)对本地JSON文件进行增、删、改、查操作(轻车熟路)》
传送门Node.js(nodejs)对本地JSON文件进行增、删、改、查操作(轻车熟路)_你挚爱的强哥❤给你发来1条消息❤-CSDN博客
在/api/demo/文件夹下面创建uploadExcel.js
代码内容
const $g = global.SG.$g, fs = global.SG.fs, router = global.SG.router, xlsx = global.SG.xlsx, multer = global.SG.multer, path = global.SG.path;
module.exports = global.SG.router;
const folderPath = "./temp/upload";//存储临时上传文件的路径
const maxFiles = 999999999;//最多支持同时上传文件数(留给客户端自由限制)
const mkdirs = $g.dir.mkdirsByFolderPath;//递归创建文件夹目录(基于文件夹路径)const upload = multer({storage: multer.diskStorage({destination(req, file, cb) {mkdirs(folderPath, () => cb(null, path.join(__dirname, `../../${folderPath}`)));//文件存储路径},filename(req, file, cb) {cb(null, `${file.fieldname}-${$g.date.timestamp()}-${file.originalname}`);//定义随机文件名}})
});//上传单个Excel(all方法支持POST、GET、PUT、PATCH、DELETE传参方式)
router.all("/demo/uploadExcel", upload.single("file"), (req, res) => {let filePath = req.file.path;fs.exists(filePath, exists => {if (exists) {let json = xlsx.parse(filePath);$g.json.res(req, res, "上传成功", json, true);$g.dir.delayDestroyFile(filePath);//延时60秒销毁服务器文件} else {$g.json.res(req, res, `文件路径${filePath}不存在}`, req.file, false);}});
});
//上传多个Excel(all方法支持POST、GET、PUT、PATCH、DELETE传参方式)
router.all("/demo/uploadExcel/multi", upload.array("file", maxFiles), (req, res) => {let arr = req.files, json = [];for (let i = 0, len = arr.length; i < len; i++) {let filePath = arr[i].path;json.push(xlsx.parse(filePath));$g.dir.delayDestroyFile(filePath);//延时60秒销毁服务器文件}$g.json.res(req, res, "上传成功", json, true);
});
在index.js最后一行加入
app.use(API_PATH, require(`.${API_PATH}/demo/uploadExcel`));//上传并解析Excel
运行
cnpm i node-xlsx & node index
Node.js实现本地客户端上传单个或者多个文件Excel文件(xls格式、xlsx格式文件)到服务器端,并且解析对应的Excel内容反馈到请求报文中相关推荐
- Node.js 在本地生成日志文件
文章目录 Node.js 在本地生成日志文件 1.前言 2.什么是 fs 3.new console.Console(stdout, stderr, ignoreErrors) 4.node.js 生 ...
- nodejs 本地php服务器,node.js创建本地服务器详解
本文主要和大家分享node.js创建本地服务器详解,简易上手node.js后,我们就可以在自己电脑上创建本地服务器了.希望能帮助到大家. 一.先上代码.//请求Node.js自带的http模块. va ...
- Node.js 使用http客户端向网站请求数据并保存
app.js代码: // 内置http模块,提供了http服务器和客户端功能 var http=require("http");// 内置文件处理模块 var fs=require ...
- Node.js搭建本地HTTP服务器(微信小程序)
Node.js搭建本地HTTP服务器(微信小程序) Node.js简易搭建本地HTTP服务器 1. 首先关闭微信开发者工具中的验证 单击工具栏中的详情按钮,选中图中所示选项即可. 2. 将Node.j ...
- 使用Node.js在本地搭建HTTP服务器
使用Node.js在本地搭建HTTP服务器 由于很多人问这个问题,我在这回复一下. 下载安装Node.js 打开命令行 在本地建一个文件夹,进行如下操作 [ 1] 初始化项目,将会自动创建packag ...
- 来自Android客户端什么意思,如何通过回调函数中的Node.js来自Android客户端
我想从插座Android客户端将数据发送到服务器的Node.js .. 在服务器端做了什么香港专业教育学院:如何通过回调函数中的Node.js来自Android客户端 socket.on('new u ...
- Node.js SQL数据库操作 (上)(操作MySQL数据库及 数据库连接池)
文章目录 Node.js MySQL驱动 操作 MySQL 数据库 连接 MySQL 数据库 增删改查操作 防止 SQL 注入攻击 数据库连接池操作 Node.js MySQL驱动 Node.js的原 ...
- 一个基于Node.js的本地快速测试服务器
local-web-test 一个本地的基于node.js的测试服务器 支持快速的启动web容器服务 支持快速的发送get,post请求,并记录在/log文件夹下,并在控制台输出 支持一个函数完成co ...
- 一个基于Node.js的本地快速测试服务器 1
local-web-test 一个本地的基于node.js的测试服务器 支持快速的启动web容器服务 支持快速的发送get,post请求,并记录在/log文件夹下,并在控制台输出 支持一个函数完成co ...
最新文章
- jQuery JavaScript库达到新的里程碑
- 在Eclipse里Validating非常缓慢
- 一直记不住window下面的盘符切换
- mixin network_基于Mixin Network的Go语言比特币开发教程 : 用 Mixin Messenger 机器人接受和发送比特币...
- 【Android笔记】如何创建列表视图3
- 中科院博士返乡卖汉服:3个月卖了300万,预计全年能破1500万
- couldn't connect to the device trackpad
- 字母异位词(anagram)的不同复杂度实现
- 盘点IT职场“最差”程序员,这7个特征尤为典型!
- 区块如何防篡改_区块链为什么能防篡改?
- python迭代器的用法_python的装饰器,迭代器用法
- 第八章 高级搜索树 (b4)B-树: 插入
- linux下dd工具,dd 工具使用
- VMware vSphere 7 vCenter 7 ESXi 7 正式版下载地址
- php面包屑导航实现思路,WordPress实现面包屑导航的方法
- 爬虫实战——求是网周刊文章爬取
- 联想 Thinkpad T440p驱动程序下载列表(转发文章)
- java粒子特效_Java学习之粒子系统
- Python类和对象使用
- matlab人体轮廓识别,人体动作识别代码,求问这是提取的什么轮廓信息