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

时间:2015-08-26 19:13:45

标签: node.js express multer

所有

我是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不是?我想知道我的理解是否正确?如果我的是正确的,如何将它改为亲戚?

由于

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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