注意,前情提示:
本代码基于《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内容反馈到请求报文中相关推荐

  1. Node.js 在本地生成日志文件

    文章目录 Node.js 在本地生成日志文件 1.前言 2.什么是 fs 3.new console.Console(stdout, stderr, ignoreErrors) 4.node.js 生 ...

  2. nodejs 本地php服务器,node.js创建本地服务器详解

    本文主要和大家分享node.js创建本地服务器详解,简易上手node.js后,我们就可以在自己电脑上创建本地服务器了.希望能帮助到大家. 一.先上代码.//请求Node.js自带的http模块. va ...

  3. Node.js 使用http客户端向网站请求数据并保存

    app.js代码: // 内置http模块,提供了http服务器和客户端功能 var http=require("http");// 内置文件处理模块 var fs=require ...

  4. Node.js搭建本地HTTP服务器(微信小程序)

    Node.js搭建本地HTTP服务器(微信小程序) Node.js简易搭建本地HTTP服务器 1. 首先关闭微信开发者工具中的验证 单击工具栏中的详情按钮,选中图中所示选项即可. 2. 将Node.j ...

  5. 使用Node.js在本地搭建HTTP服务器

    使用Node.js在本地搭建HTTP服务器 由于很多人问这个问题,我在这回复一下. 下载安装Node.js 打开命令行 在本地建一个文件夹,进行如下操作 [ 1] 初始化项目,将会自动创建packag ...

  6. 来自Android客户端什么意思,如何通过回调函数中的Node.js来自Android客户端

    我想从插座Android客户端将数据发送到服务器的Node.js .. 在服务器端做了什么香港专业教育学院:如何通过回调函数中的Node.js来自Android客户端 socket.on('new u ...

  7. Node.js SQL数据库操作 (上)(操作MySQL数据库及 数据库连接池)

    文章目录 Node.js MySQL驱动 操作 MySQL 数据库 连接 MySQL 数据库 增删改查操作 防止 SQL 注入攻击 数据库连接池操作 Node.js MySQL驱动 Node.js的原 ...

  8. 一个基于Node.js的本地快速测试服务器

    local-web-test 一个本地的基于node.js的测试服务器 支持快速的启动web容器服务 支持快速的发送get,post请求,并记录在/log文件夹下,并在控制台输出 支持一个函数完成co ...

  9. 一个基于Node.js的本地快速测试服务器 1

    local-web-test 一个本地的基于node.js的测试服务器 支持快速的启动web容器服务 支持快速的发送get,post请求,并记录在/log文件夹下,并在控制台输出 支持一个函数完成co ...

最新文章

  1. jQuery JavaScript库达到新的里程碑
  2. 在Eclipse里Validating非常缓慢
  3. 一直记不住window下面的盘符切换
  4. mixin network_基于Mixin Network的Go语言比特币开发教程 : 用 Mixin Messenger 机器人接受和发送比特币...
  5. 【Android笔记】如何创建列表视图3
  6. 中科院博士返乡卖汉服:3个月卖了300万,预计全年能破1500万
  7. couldn't connect to the device trackpad
  8. 字母异位词(anagram)的不同复杂度实现
  9. 盘点IT职场“最差”程序员,这7个特征尤为典型!
  10. 区块如何防篡改_区块链为什么能防篡改?
  11. python迭代器的用法_python的装饰器,迭代器用法
  12. 第八章 高级搜索树 (b4)B-树: 插入
  13. linux下dd工具,dd 工具使用
  14. VMware vSphere 7 vCenter 7 ESXi 7 正式版下载地址
  15. php面包屑导航实现思路,WordPress实现面包屑导航的方法
  16. 爬虫实战——求是网周刊文章爬取
  17. 联想 Thinkpad T440p驱动程序下载列表(转发文章)
  18. java粒子特效_Java学习之粒子系统
  19. Python类和对象使用
  20. matlab人体轮廓识别,人体动作识别代码,求问这是提取的什么轮廓信息

热门文章

  1. 关于HttpClient上传中文乱码的解决办法
  2. 20172329 2017-2018-2 《程序设计与数据结构》实验五报告
  3. MySQL 学习笔记(7)—— 游标
  4. apiCloud中的数据库操作mcm-js-sdk的使用
  5. ---pacman dpkg yum 之比较
  6. 面试题:查询连续出现的数字
  7. SOAPUI请求及mockservice 使用
  8. class function或class procedure是什么意思
  9. EF-Entity Framework 相关技术点收集贴
  10. 型人格 disc测试_3号,成就型人格的专业和职业选择@九型人格测试