使用Node访问Root目录

时间:2015-05-28 20:28:30

标签: node.js

有没有办法通过节点访问Linux root('/')目录?现在,我有这样的事情:

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根目录下的文件夹而不是项目的根目录。

1 个答案:

答案 0 :(得分:0)

您问题的最直接答案

  
    

有没有办法通过节点访问Linux root('/')目录?

  

是的,使用/。 Node.js不应该给它任何特殊的处理。 Root是一个与其他目录一样的目录。

打开你的代码......

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. 有一百万个更好的位置来存储从网络服务器上传的文件。