node.js - req.file 未定义:使用 multer 快速上传图片
问题描述
我正在尝试使用 multer 在快速服务器中上传图像,但是,使用邮递员使用下面的路由上传图像会给出 json 消息{ msg: 'image uploaded successfully' }
(即,正确到达路由),但req.file
会给出undefined
. 为什么?相关文件结构如下,以确保我正确引用了目标:
-backend
--routes
---uploadRoutes.js
--server.js
-frontend
-uploads
上传路由.js
import path from 'path';
import express from 'express';
import multer from 'multer';
const router = express.Router();
const storage = multer.diskStorage({
destination(req, file, cb) {
cb(null, 'uploads');
},
filename(req, file, cb) {
cb(
null,
`${file.fieldname}-${Date.now()}${path.extname(file.originalname)}`
);
},
});
function checkFileType(file, cb) {
const filetypes = /jpg|jpeg|png/;
const extname = filetypes.test(path.extname(file.originalname).toLowerCase());
const mimetype = filetypes.test(file.mimetype);
if (extname && mimetype) {
return cb(null, true);
} else {
cb('Images only!');
}
}
const upload = multer({
storage,
fileFilter: function (req, file, cb) {
checkFileType(file, cb);
},
});
router.post('/', upload.single('image'), (req, res) => {
console.log(req.file);
try {
res.status(200).json({ msg: 'image uploaded successfully' });
} catch (error) {
console.error(error.message);
}
// res.send(`/${req.file.path}`);
});
export default router;
解决方案
推荐阅读
- javascript - Websocket 和自签名 SSL 证书有什么问题
- python - 如何将由时间、周和闰秒组成的 GPS 时间转换为 UTC 时间戳
- javascript - 如何编写更好的 JS 函数 - 带标签框的输入单选
- reporting-services - 用于 KPI 的 SSRS 数据集,多重计算
- unicode - 将破坏 OLAP 多维数据集的字符列表
- python - 如何使用 zeep 在 App Engine 上禁用对 Adwords API 的缓存?
- python - 将 AWS S3 连接到 Databricks PySpark
- android-camera2 - 如何使用android camera2处理视频的每一帧并在帧之间移动像素
- reactjs - React-Native 一次性绑定
- android - 与 LiveData 的数据绑定
使 BindingAdapter 上的值无效?