【问题标题】:Any reason why process.env wouldn't contain HOME info?process.env 不包含 HOME 信息的任何原因?
【发布时间】:2016-08-02 20:38:38
【问题描述】:

我正在尝试使用 AWS,它会检查用户目录中的凭证信息。它通过使用 process.env,然后提取用户的主目录来做到这一点。

但是,在收到未设置 HOME 路径的错误后,我检查了自己并注意到 process.env 调用没有输出 HOME 数据。

我尝试为 HOME = %UserProfile% 设置系统和环境变量,但没有成功。任何想法为什么这不起作用?

我正在使用 eclipse neon,并且正在公司笔记本电脑上使用 NodeJS 进行开发。如果有任何典型的安全功能阻止程序访问用户的主目录。

输出

var env = process.env;
console.log(env);

是:

{ 
  APPDATA: 'C:\\Users\\myusername\\AppData\\Roaming',
  PATH: 'C:/Program Files/Java/jre1.8.0_102/bin/server; (ETC... huge list)
  SystemDrive: 'C:',
  SystemRoot: 'C:\\WINDOWS',
  TEMP: 'C:\\Users\\myusername\\AppData\\Local\\Temp',
  TMP: 'C:\\Users\\myusername\\AppData\\Local\\Temp' 
}

感谢您的洞察力! Google 只返回了用于登录的手册页,这显然是该字段的设置位置?希望你们有所收获。

另外,我不知道安全性是如何设置的,也不会回答这些问题。这主要是一个好奇的事情,可能在某个地方有一个快速修复。

【问题讨论】:

    标签: javascript node.js environment-variables


    【解决方案1】:

    我不确定您有哪些安全设置或它们可能对 Node 中的环境变量产生什么影响,但您应该能够通过使用 os.homedir()(内置于 Node)获取当前用户的主目录:

    var os = require('os');
    var home = os.homedir();
    

    https://nodejs.org/dist/latest-v4.x/docs/api/os.html#os_os_homedir

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-25
      • 2016-11-01
      • 1970-01-01
      • 2013-11-03
      • 1970-01-01
      • 2017-09-27
      • 1970-01-01
      相关资源
      最近更新 更多