繁体   English   中英

使用节点访问根目录

[英]Access Root directory using Node

有什么方法可以通过节点访问Linux根目录('/')? 现在,我有这样的事情:

multipart   = require('connect-multiparty')
app.use(multipart({
   uploadDir: config.tmp
}));

...

var file = req.files.file;
fs.renameSync(file.path, ".", function(err) {
    if(err) console.error(err.stack);
})

但问题是file.path指向Linux根目录内的文件夹,而不是项目根目录。

您问题的最真实答案

有什么方法可以通过节点访问Linux根目录('/')?

是的,通过使用/ Node.js不应对其进行任何特殊处理。 根目录与其他目录一样。

转到您的代码...

fs.renameSync获取源,然后再获取目标。 您正在将文件重命名为. ,代表当前的工作目录。 我什至不知道您是否可以将某些内容重命名为. 我将从路径中提取文件名,然后将目标设置为根目录以及该文件名。

如何访问根目录,即如你所说,是/ ,那么,使用/

顺便说一句,为什么要在带有回调的情况下使用renameSync ,之后又什么也不做? 根据文档,这是无效的。 它要么与回调异步,要么与没有回调同步。 因此,您的回调可能不会触发。

var file = req.files.file;
fs.rename(file.path, '/' + path.basename(file.path), function(err) {
    if(err) console.error(err.stack);
});

顺便说一句,出于多种原因,我必须强烈反对将文件写入Linux根目录的应用程序:

  1. 需要root特权,这会打开一罐蠕虫。
  2. 没有人会想到那里
  3. 丝毫的错误可能会造成无法挽回的损害。 如果所需的文件名是“ etc”或“ boot”怎么办?
  4. 有上百万个更好的位置用于存储从Web服务器上载的文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM