首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Node访问根目录

使用Node访问根目录
EN

Stack Overflow用户
提问于 2015-05-28 20:28:30
回答 1查看 3K关注 0票数 0

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

代码语言:javascript
复制
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中的文件夹,而不是项目的根。

EN

回答 1

Stack Overflow用户

发布于 2015-05-28 20:41:31

你的问题最直截了当的回答

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

是的通过使用/。Node.js不应该对它给予任何特殊的对待。根目录和其他目录一样。

关于你的密码..。

fs.renameSync首先获取源,其次是目标。将一个文件重命名为.,它表示当前的工作目录。我甚至不确定您是否可以将某个东西重命名为.。我将从路径中提取文件名,然后将目标设置为根目录加上该文件名。

如何访问根目录,正如您所说的,它是/,嗯,使用/

顺便问一下,您为什么在回调之后使用renameSync而没有回调呢?根据文件,这是无效的。它要么是带有回调的异步,要么是没有回调的同步。所以你的回调可能不是在开火。

代码语言:javascript
复制
var file = req.files.file;
fs.rename(file.path, '/' + path.basename(file.path), function(err) {
    if(err) console.error(err.stack);
});

顺便说一句,我不得不强烈反对将文件写入Linux根目录的应用程序,原因如下:

  1. 需要根权限,这会打开一罐蠕虫。
  2. 没有人会想到去看那里
  3. 哪怕是最轻微的错误都会造成不可挽回的伤害。如果想要的文件名是"etc“或"boot”,怎么办?
  4. 有一百万个更好的位置来存储从web服务器上传的文件。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30516506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档