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

所有:

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

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

但有一点让我困惑的是:无论我在哪里把这行代码(无论是在子路由器文件,或app.js),它总是创build“上传”文件夹项目根目录下(app.js,视图,路由,公共…位置),即使我将其更改为“./uploads/”,它仍然会在项目根目录下创build上传文件夹。

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

谢谢

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

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

它似乎是基于path.resolve()的值。 path被定义为var path = require('path')