首页 > 其他分享 >express如何解析multipart/form-data格式的数据

express如何解析multipart/form-data格式的数据

时间:2024-08-07 16:18:07浏览次数:16  
标签:express const form cb req upload multipart multer

最近在学习express,遇到了multipart/form-data请求参数接收不到的问题,控制台打印为{}空对象

 问了下AI说是用express内置的方法app.use(express.urlencoded({ extended: true })); 或者下载body-parser使用app.use(bodyParser.urlencoded({ extended:true}));结果都不行,控制台还是打印空对象;

后来想到自己上传文件用的是multer插件,上传文件用的也是form-data格式,于是就开始尝试multer解决.

const multer = require('multer');

const upload = multer({})

//我想应用在全局
app.use(upload.none(),function (req, res, next) {   console.log("表单打印",req.body)   next(); });


 成功了!!!

但是我发现我其他地方又出问题了 ̄へ ̄,他影响到了我文件上传的代码,可能是因为我全局配置了uoload.none();导致我文件上传那块解析不到fileList这个参数直接报错404。

const multer = require('multer');

const storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, 'public/images') // 确保这个文件夹已经存在
  },
  filename: function (req, file, cb) {
    cb(null, Date.now() + "." + file.originalname.split(".").pop())
  }
})
const upload = multer({ storage: storage,limits:{fileSize:1024 * 100},fileFilter:(req,file,cb)=>{
  checkFileType(file,cb);
}})

router.post('/uploadMutiple', upload.array('fileList', 3), async(req, res) => {
  /**其他代码省略*/
});

 所以不能在全局配置,只能在单个请求中使用这个中间件

// 比如登录
router.post('/login', upload.none(),async function (req, res) {
    console.log(req.body);可以打印到form-data请求参数
})

不知道有没有大佬有更好的方法

 

app.use(express.urlencoded({ extended: true })); 

标签:express,const,form,cb,req,upload,multipart,multer
From: https://www.cnblogs.com/jzm2842688813/p/18347058

相关文章

  • Informer复现 -- 训练及吃瓜
    想吃瓜的同学,直接往后看训练经过几次博文,Informer的模型已经完全复现了。接下来就是通过训练验证复现的模型是否可行。优化器optimizer用Adam,评价标准criterion用MSELoss(),学习率设置为1e-3,学习率衰减采用CosineLRScheduler(timm.scheduler.cosine_lr),预热5个epoch。batch_......
  • Informer复现--模型之Attention
    目录原始Attention:卷王Informer:拒绝躺平Informer龙场悟道: K 也要选一选到底选多少个:少量;些许;一些代码复现:talkischeapAttention:原代码中是FullAttentionProbAttention复现第一步:计算$u$和$U$第二步:随机选取少量K第三步:计算pre-attention第四步:得到用来选少......
  • 界面控件DevExpress WinForms,支持HTML & CSS提升用户体验(二)
    DevExpressWinForms现在可以利用HTML/CSS强大的功能,帮助受DevExpress驱动的WinForms应用程序引入现代的UI元素和用户体验!P.S:DevExpressWinForms拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForms能完美构建流畅、美观且易于使用的应......
  • Transformer在生成细胞数据上的应用
    来自:scTranslator:Apre-trainedlargegenerativemodelfortranslatingsingle-celltranscriptometoproteome工程地址:https://github.com/TencentAILabHealthcare/scTranslator在scTranslator中,有3个阶段:pairedbulk上监督学习,pairedsc上监督学习,scRNA上推理。前......
  • 【论文笔记】Cross-Domain WiFi Sensing with Channel State Information: A Survey
    Cross-DomainWiFiSensingwithChannelStateInformation:ASurveyIntroduction检测领域:检测领域里,大部分用的阈值检测或者简单的学习算法,例如SVM。fallsRT-Fall:Areal-timeandcontactlessfalldetectionsystemwithcommodityWiFidevicesWiFall:Device-fr......
  • Element el-form 表单校验,保存或提交验证某一项或者多项;validateField 的使用
    通常新增或者编辑对form表单的校验都是全局性的校验:this.$refs.form.validate(valid=>{if(valid){//校验通过,业务逻辑代码...}});如果需要对表单里的特定几个必填项进行校验,应该如何实现? 业务场景:下图点击保存按钮时,只需要校验前两项,其余参数不......
  • ABAP 宿主表达式(Host Expressions)
    ABAP宿主表达式是一种在ABAP7.40及更高版本中引入的特性,‌它允许在SQL表达式的操作数位置或编写SQL语句的工作区中使用任何ABAP表达式。‌ 这种表达式通过在表达式前加上@符号来标识,‌形式为@(abap_expression)。‌宿主表达式的引入,‌使得ABAP开发者能够更灵活地在SQL查询中使用......
  • 如何捕获来自 Chem.MolFromSmiles('Formula') 的错误消息
    我是这个rdkit的新手,下面是我用来从公式获取化学图像的代码,fromrdkitimportChemm=Chem.MolFromSmiles('OCC1OC(C(C(C1O)O)O)[C]1(C)(CO)CC(=O)C=C(C1CCC(=O)C)C')m如果代码正确,它会显示结构。上面的代码显示错误说"[15:23:55]Explicitvalenceforatom#11C......
  • 借助 Transformer 实现美股价格的预测(Python干货)
    作者:老余捞鱼原创不易,转载请标明出处及原作者。写在前面的话:      Transformer是一种在自然语言处理等领域广泛应用的深度学习架构,与传统的循环神经网络(RNN)相比,Transformer可以并行处理输入序列的各个位置,大大提高了计算效率。而且通过多层的深度堆叠,能够学习......
  • 开发框架DevExpress XAF v24.2产品路线图预览——增强跨平台性
    DevExpressXAF是一款强大的现代应用程序框架,允许同时开发ASP.NET和WinForms。XAF采用模块化设计,开发人员可以选择内建模块,也可以自行创建,从而以更快的速度和比开发人员当前更强有力的方式创建应用程序。DevExpressXAF是一个.NET应用程序框架,它可以帮助您用DevExpressBlazor和W......