【问题标题】:Cross-platform hidden settings files in node.jsnode.js 中的跨平台隐藏设置文件
【发布时间】:2013-01-14 20:23:41
【问题描述】:

在 node.js 中,我试图以一种不错的跨平台方式找出我的应用设置文件应该在哪里的路径。

  • Unix:~/.my-app/file
  • Windows:%APPDATA%\my-app\file
  • Mac:~/Library/Application Support/my-app/file(或~/.my-app/file)

或者类似的东西。

我不想硬编码查找用户所在的操作系统,因为这看起来非常骇人听闻,而且完全没有未来可言。我希望ospathfs 中有一些东西,但我一直找不到。

【问题讨论】:

    标签: node.js path


    【解决方案1】:

    所以您正在寻找的是path-extra 模块,它向 Node 的内置路径添加了一些实用功能。我找到了with this simple search in NPM,所以你知道:npm 的搜索引擎越来越好!

    你这样使用它:

    var path = require('path-extra');
    var appPath = path.datadir('appname');
    var myFile = path.join(appPath, 'myFile.txt');
    ...
    

    【讨论】:

      【解决方案2】:

      节点中没有任何东西像您正在寻找的那样。你将不得不自己写。

      【讨论】:

      • 我很担心。似乎有点疏忽。
      • 也许不是。无论哪种方式都可以争论。
      • 是的,VM 维护人员可能很难决定哪些内容可以方便地下载,哪些内容应该省略。恕我直言 Node 仅捆绑基本要素的方法非常成功。我已经开始比 Python 的“包含电池”方式更喜欢它,后者确实有强烈的趋势会产生大量生锈的补丁(他们仍然在 2013 年发布了 Sun Audio 文件读/写库......)。话说回来,当 Python 被构思出来的时候,数据仍然是骡子背着过山路,所以方便一次订购,得到所有东西。
      【解决方案3】:

      在回答“我一直找不到它”的问题时,...检查 node.js 'path' 模块,特别是 path.normalize 和 path.join。

      我没有发现需要其他模块,因为“路径”解决了跨平台路径构建。

      http://nodejs.org/api/path.html#path_path_normalize_p
      

      http://nodejs.org/api/path.html#path_path_join_path1_path2
      

      这是我使用 path.join 的方式...

      var pth = require('path');
      var fspath_myfile       = pth.join(__dirname,'fs','remote','myfile.txt');
      

      如果我用完了目录“projectdir”,则会产生这些文件/路径值:

      C:\projectdir\fs\remote\myfile.txt 
      
      /home/myusername/projectdir/fs/remote/myfile.txt 
      

      【讨论】:

      • 不确定您的答案对“无法找到”的哪一部分有帮助...... OP 特别要求提供一种方法来获取指向“我的应用程序设置文件应该位于的最佳位置”的指针,以一种不错的跨平台方式”,而您只是告诉他“看,NodeJS path 可以在 Linux 和 Windows 上运行”。
      猜你喜欢
      • 2014-10-15
      • 2010-09-21
      • 2022-01-14
      • 2010-10-10
      • 2010-11-04
      • 1970-01-01
      • 2011-03-14
      • 2011-04-18
      相关资源
      最近更新 更多