2

全部:

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

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

但是让我非常困惑的一件事是:无论我将此行代码放在哪里(在子路由器文件或 app.js 中),它总是在项目根目录下创建“uploads”文件夹(与 app.js 相同的文件夹,视图,路线,公共...位于),即使我将其更改为“./uploads/”,它仍然会在项目根目录下创建上传文件夹。

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

谢谢

4

2 回答 2

2

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

var upload = multer({dest: __dirname + '/uploads/'});
于 2015-08-26T19:36:04.910 回答
2

它似乎基于 的值path.resolve()。其中路径定义为var path = require('path')

于 2016-05-04T19:17:10.333 回答