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

希望这对像我一样愚蠢的其他人有所帮助。