1、在html部分,选择一个文件(以excel为例)2.js上传文件部分,主要用到了jquery和FormDatavarformData=newFormData($('#uploadForm')[0]);formData.append("mapType","baidu");$.ajax({url:'/upload/order',type:'POST',data:formData,processData:false,//告诉jquery不要处理发送的数据contentType:false//告诉jquery不要设置content-Type请求头}).done(function(res){}).fail(function(res){console.日志(“失败”);});3.后台节点接收部分,解析excel使用"node-xlsx"constexpress=require('express');constfs=require('fs');constformidable=require('formidable');constxlsx=require('node-xlsx');constrouter=express.Router();router.post('/order',(req,res)=>{控制台。log('##########POST/upload#######');letfileTypeError=false;consttargetPath=`${__dirname}/upload`;constform=newformidable.IncomingForm();form.encoding='utf-8';form.keepExtensions=true;form.maxFieldsSize=10*1024*1024;form.uploadDir=targetPath;常量文件=[];常量字段=[];letmapType='高德';form.on('field',(field,value)=>{//上传相关参数("mapType","baidu")if(field==='mapType')mapType=value;fields.push([field,价值]);});form.on('file',(field,file)=>{//接收文件触发console.log(`uploadfile:${file.name}`);//判断文件类型是否为xlsxif(file.type!=='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'){fileTypeError=true;}files.push([field,file]);});form.on('end',()=>{//遍历上传文件letfileName='';letobj='';constfolderExists=fs.existsSync(targetPath);if(folderExists){constdirList=fs.阅读同步(目标路径);dirList.forEach(async(item)=>{if(!fs.statSync(`${targetPath}/${item}`).isDirectory()){console.log(`parseitem:${targetPath}/${item}`);fileName=`${targetPath}/${item}`;if(!fileTypeError){//解析excelobj=xlsx.parse(fileName,{cellDates:true});console.log(JSON.stringify(obj));res.send({code:10000,msg:'数据解析成功',resOrders:resOrderObjs});}else{res.send({code:20003,msg:'文件格式不正确correct'});}fs.unlinkSync(fileName);//删除fi乐}});}else{res.send({rtnCode:'1',rtnInfo:'系统错误'});}});form.on('error',(err)=>{res.send({rtnCode:'1',rtnInfo:'上传错误'});});form.on('aborted',()=>{res.send({rtnCode:'1',rtnInfo:'Abortedupload'});});form.parse(req);});参考链接:http://www.cnblogs.com/lyr121...https://lipeishang.github.io/...