Multer 未将文件上传到目录且未显示错误
Multer not uploading files to directory and no errors showing
我正在尝试让 Multer 将图像保存在 src/uploads
目录中。一切似乎都没有错误,但在调用端点后 src/uploads
目录为空。
我正在使用一个使用 Node、Express 的微服务架构,运行 它在本地使用 Skaffold 的 DockerDesktop + Kubernetes。
这是我的 route
:
const router = express.Router();
let storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, path.join(__dirname, './uploads'));
},
filename: function (req, file, cb) {
cb(null, file.originalname);
},
});
let upload = multer({ storage });
router.post(
'/api/products/images',
upload.single('image'),
async (req: Request, res: Response) => {
console.log(req.file);
res.status(201).send('success');
},
);
export { router as imageRouterRouter };
我的 app
文件包括:
app.use(imageRouterRouter);
app.use('/uploads', express.static(__dirname));
我知道我通过邮递员成功接收了文件,Multer 是 'uploading' 它并且路径是正确的,因为我正在记录以下内容 req.file
:
[products] {
[products] fieldname: 'image',
[products] originalname: 'cute-dog.jpeg',
[products] encoding: '7bit',
[products] mimetype: 'image/jpeg',
[products] destination: '/app/src/uploads',
[products] filename: 'cute-dog.jpeg',
[products] path: '/app/src/uploads/cute-dog.jpeg',
[products] size: 18473
[products] }
任何帮助将不胜感激,因为我已经花了几天时间没有运气。谢谢。
我知道问题出在哪里了。
我正在检查本地计算机上的 src/uploads
目录,希望它包含新文件。但是因为我使用的是 docker
,所以新文件被写入了容器。
使用以下内容,我探索了容器并确认文件在那里:
docker exec -it <container_id> /bin/sh
希望这对像我一样愚蠢的其他人有所帮助。
我正在尝试让 Multer 将图像保存在 src/uploads
目录中。一切似乎都没有错误,但在调用端点后 src/uploads
目录为空。
我正在使用一个使用 Node、Express 的微服务架构,运行 它在本地使用 Skaffold 的 DockerDesktop + Kubernetes。
这是我的 route
:
const router = express.Router();
let storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, path.join(__dirname, './uploads'));
},
filename: function (req, file, cb) {
cb(null, file.originalname);
},
});
let upload = multer({ storage });
router.post(
'/api/products/images',
upload.single('image'),
async (req: Request, res: Response) => {
console.log(req.file);
res.status(201).send('success');
},
);
export { router as imageRouterRouter };
我的 app
文件包括:
app.use(imageRouterRouter);
app.use('/uploads', express.static(__dirname));
我知道我通过邮递员成功接收了文件,Multer 是 'uploading' 它并且路径是正确的,因为我正在记录以下内容 req.file
:
[products] {
[products] fieldname: 'image',
[products] originalname: 'cute-dog.jpeg',
[products] encoding: '7bit',
[products] mimetype: 'image/jpeg',
[products] destination: '/app/src/uploads',
[products] filename: 'cute-dog.jpeg',
[products] path: '/app/src/uploads/cute-dog.jpeg',
[products] size: 18473
[products] }
任何帮助将不胜感激,因为我已经花了几天时间没有运气。谢谢。
我知道问题出在哪里了。
我正在检查本地计算机上的 src/uploads
目录,希望它包含新文件。但是因为我使用的是 docker
,所以新文件被写入了容器。
使用以下内容,我探索了容器并确认文件在那里:
docker exec -it <container_id> /bin/sh
希望这对像我一样愚蠢的其他人有所帮助。