所有
我是Express.js的新手,当我使用Multer(https://github.com/expressjs/multer)处理文件上传时,我指定了一个multer中间件对象:
var upload = multer({dest: 'uploads/'});
但有一点令我困惑的是: 无论我把这个行代码放在哪里(在子路由器文件或app.js中),它总是在项目根目录下创建“uploads”文件夹(与app.js,views,routes,public ...相同的文件夹),即使我将其更改为“./uploads/”,它仍会在项目根目录下创建uploads文件夹。
这让我很困惑,因为当我将它与require()函数进行比较时,似乎require()使用相对路径基于调用它的位置而multer不是?我想知道我的理解是否正确?如果我的是正确的,如何将它改为亲戚?
由于
答案 0 :(得分:1)
您始终可以指定绝对路径(相对于当前模块)以消除任何疑问:
var upload = multer({dest: __dirname + '/uploads/'});
答案 1 :(得分:1)
似乎是基于path.resolve()
的价值。路径定义为var path = require('path')
。