Node.js的“ os”模块没有userInfo()方法

时间:2019-05-15 14:43:32

标签: javascript node.js reactjs

我想使用node.js中的"os" module以及其他方法,使用userInfo()方法。但是,即使API specification明确指出确实存在,该方法也不存在。

特别是,当我尝试使用使用该方法的文件时,出现类型错误“ os.userinfo不是函数”。例如,如果我尝试导入以下简单文件

const os = require('os');
const user = os.userInfo();

我收到错误消息

Uncaught TypeError: os.userInfo is not a function

如果我尝试以控制台方式登录os模块,这很明显,因为它没有显示任何userInfo方法,但是应该显示吗?

代码正在使用运行节点版本11.12.0的docker在React SPA中运行。

此外,如果有帮助,我正在尝试实施类似this的方法。

第二次编辑:我的问题被标记为this question的重复项,但事实并非如此。该用户错误是由于使用了旧版本(<6.00)的节点引起的,而最重要的答案是使用了不赞成使用的节点模块。

1 个答案:

答案 0 :(得分:2)

由于我的最后一个答案被删除了(大概是因为我问了一个反问),所以我将澄清一下:

您提到:

  

代码正在使用docker在React SPA中运行,而docker正在运行   节点.....

如果您尝试从客户端(React)代码调用os.userInfo(),则无法在浏览器中运行Javascript来做到这一点,这将是一个安全漏洞。该方法仅在NodeJS中存在(NodeJS在V8周围有一个特殊的包装,用于与OS进行常规交互,例如 fs 模块等)。

您只能从 NodeJS服务器调用该函数。通过Electron是使用NodeJS构建的,通过上述功能或process.env['USER'];对于基于UNIX的系统来说,在Electron中获取userInfo(如您在对我的答案的评论中所提到的)应该相对简单。