Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 确定Multer中间件的上载文件夹位置_Node.js_Express_Multer - Fatal编程技术网

Node.js 确定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文件夹 这

全部:

我不熟悉Express.js,当我使用Multer()处理文件上传时,我指定了一个Multer中间件对象:

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/');在不同的地方?