确定 Multer 中间件的上传文件夹位置

Decide the upload folder location of Multer middleware

全部:

我是Express.js的新手,当我用Multer处理文件上传时(https://github.com/expressjs/multer),我指定了一个multer中间件对象:

var upload = multer({dest: 'uploads/'});

但是让我很困惑的一件事是: 无论我将此行代码放在哪里(在子路由器文件或 app.js 中),它总是在项目根目录下创建 "uploads" 文件夹(与 app.js、views、routes、public... located),即使我将其更改为“./uploads/”,它仍然会在项目根目录下创建上传文件夹。

这让我很困惑,因为当我将它与 require() 函数进行比较时,似乎 require() 使用基于调用位置的相对路径,而 multer 不是?请问我的理解是否正确?如果我的是正确的,如何将其更改为相对的?

谢谢

您始终可以指定绝对路径(即相对于当前模块的路径)以消除任何疑问:

var upload = multer({dest: __dirname + '/uploads/'});

好像是根据path.resolve()的值。其中路径定义为 var path = require('path').