【发布时间】:2014-09-08 08:00:43
【问题描述】:
我的 node.js 应用程序需要存储大量的二进制数据。使用本地文件系统似乎是合适的解决方案,但应用程序数据目录根据主机系统放置在不同的位置。
检索应用程序数据目录(如 %appdata%\appname 或 ~/.appname)的独立于系统的方法是什么?
【问题讨论】:
我的 node.js 应用程序需要存储大量的二进制数据。使用本地文件系统似乎是合适的解决方案,但应用程序数据目录根据主机系统放置在不同的位置。
检索应用程序数据目录(如 %appdata%\appname 或 ~/.appname)的独立于系统的方法是什么?
【问题讨论】:
在 Windows 上,您可以尝试使用 process.env.APPDATA。在 Windows 10 或 Windows 8 等较新的 Windows 版本上,它通常会导致 C:\Users\user\AppData\Roaming。
在 MacOS 上,请改用 process.env.HOME。
【讨论】:
process.env 已经是一种跨平台的方法了。其余的只是环境变量(HOME、APPDATA、LOCALAPPDATA 等)。每个平台都有不同的文件夹结构,因此允许用户自定义他们想要的路径是有意义的。
获取当前目录:__dirname
如果您想获取另一个全局变量,例如应用程序目录,那么:
process.env.ENV_VARIABLE
ENV_VARIABLE 是您要访问的变量的名称
您还可以查看nconf,它是“具有文件、环境变量、命令行参数和原子对象合并的分层 node.js 配置”
【讨论】: