Node.js 确定Multer中间件的上载文件夹位置
全部: 我不熟悉Express.js,当我使用Multer()处理文件上传时,我指定了一个Multer中间件对象:Node.js 确定Multer中间件的上载文件夹位置,node.js,express,multer,Node.js,Express,Multer,全部: 我不熟悉Express.js,当我使用Multer()处理文件上传时,我指定了一个Multer中间件对象: var upload = multer({dest: 'uploads/'}); 但有一件事让我非常困惑: 无论我把这行代码放在哪里(在子路由器文件或app.js中),它总是在项目根目录下创建“uploads”文件夹(与app.js、views、routes、public…所在的文件夹相同),即使我将其更改为“/uploads/”,它仍然在项目根目录下创建uploads文件夹 这
var upload = multer({dest: 'uploads/'});
但有一件事让我非常困惑:
无论我把这行代码放在哪里(在子路由器文件或app.js中),它总是在项目根目录下创建“uploads”文件夹(与app.js、views、routes、public…所在的文件夹相同),即使我将其更改为“/uploads/”,它仍然在项目根目录下创建uploads文件夹
这让我非常困惑,因为当我将其与require()函数进行比较时,require()似乎根据调用它的位置使用相对路径,而multer不是?我不知道我的理解是否正确?如果我的是正确的,怎么把它改成相对的
谢谢您始终可以指定一个绝对路径(相对于当前模块),以消除任何疑问:
var upload = multer({dest: __dirname + '/uploads/'});
它似乎基于
path.resolve()
的值。其中路径定义为var path=require('path')
谢谢,这个绝对路径有效。但是我仍然想知道在multer中决定相对路径的规则,为什么我不能改变上传文件夹的位置,即使我把var upload=multer({dest:'uploads/');在不同的地方?