我想使用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)的节点引起的,而最重要的答案是使用了不赞成使用的节点模块。
答案 0 :(得分:2)
由于我的最后一个答案被删除了(大概是因为我问了一个反问),所以我将澄清一下:
您提到:
代码正在使用docker在React SPA中运行,而docker正在运行 节点.....
如果您尝试从客户端(React)代码调用os.userInfo()
,则无法在浏览器中运行Javascript来做到这一点,这将是一个安全漏洞。该方法仅在NodeJS中存在(NodeJS在V8周围有一个特殊的包装,用于与OS进行常规交互,例如 fs 模块等)。
您只能从 NodeJS服务器调用该函数。通过Electron是使用NodeJS构建的,通过上述功能或process.env['USER'];
对于基于UNIX的系统来说,在Electron中获取userInfo(如您在对我的答案的评论中所提到的)应该相对简单。