Node.js REST API上传文件到目录提示No Files uploaded错误如何解决
问题排查及修复方案
- 缺失文件上传解析中间件配置
默认Express原生不支持解析multipart/form-data格式的请求体,你代码里用到的req.files是express-fileupload中间件挂载的属性,未配置该中间件时req.files恒为undefined,就会直接返回“No Files uploaded”报错。
修复步骤:- 安装依赖:
npm install express-fileupload - 在你的路由定义之前,新增中间件配置:
const fileUpload = require('express-fileupload'); // 可根据需求调整配置,比如限制文件大小、类型等 app.use(fileUpload({ createParentPath: true // 自动创建上传目录,不用手动新建postimages文件夹 })); - 安装依赖:
- Postman字段匹配校验
你代码中从req.files解构的字段名为foo,需要确认Postman的form-data里,文件对应的键名必须是foo,否则即使上传了文件也会获取失败。 - SQL语句语法错误
你当前用的INSERT INTO ... SET ?语法要求传入的参数是对象,不是数组,现有写法会触发SQL执行报错,修复为:dbConn.query('INSERT INTO instagramclonedbposts SET ?', { username: username, imgUrl: imgUrl, post: post }, function(error, results, fields){ // 原有逻辑 }) - 额外注意事项
不要在Postman中手动设置Content-Type: multipart/form-data请求头,Postman发送form-data请求时会自动生成带边界值的请求头,手动配置会导致边界值缺失,解析文件失败。
内容的提问来源于stack exchange,提问作者Blaq
相关产品推荐
相关产品推荐

