Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在NodeJS中获取操作系统用户名?_Javascript_Node.js_Electron_Userid - Fatal编程技术网

Javascript 如何在NodeJS中获取操作系统用户名?

Javascript 如何在NodeJS中获取操作系统用户名?,javascript,node.js,electron,userid,Javascript,Node.js,Electron,Userid,如何使用NodeJS获取/查找计算机所有者当前(登录时)使用的用户名 我搜索了一下,但没有找到任何东西。这一个对象您将获得用户名: let os = require('os') console.log(os.userInfo()); 如果它不需要跨操作系统(仅基于*nix),您可以这样做(请记住,如果您将其参数化,使用exec可能有潜在风险): 如果你想用蓝鸟做承诺,别忘了:npm安装蓝鸟--save我不知道为什么,但有人添加了一个答案,然后很快删除了它。。。不过,我很快就抓住了它,经过检查,

如何使用NodeJS获取/查找计算机所有者当前(登录时)使用的用户名


我搜索了一下,但没有找到任何东西。

这一个对象您将获得用户名:

let os = require('os')
console.log(os.userInfo());

如果它不需要跨操作系统(仅基于*nix),您可以这样做(请记住,如果您将其参数化,使用exec可能有潜在风险):


如果你想用蓝鸟做承诺,别忘了:
npm安装蓝鸟--save

我不知道为什么,但有人添加了一个答案,然后很快删除了它。。。不过,我很快就抓住了它,经过检查,这是完成我之前要求的任务的最短、最有效的方法:

require(“os”).userInfo().username

唯一的问题是,在Windows 10中,它返回已使用的所有者帐户的名字(只是一个提示)。
其他一切都很好

如果要获取有关客户端的信息,请在服务器上调用路由,必须解析客户端useragent

您可以使用以下示例获取具有节点的客户端用户代理:


当然,最简单的方法就是使用

安装: 然后:
process.env.USER
至少也应该在MAC或Linux中工作。e、 g

let user = process.env.USER || ""
你可以简单地使用

app.getPath('home')

它将返回当前用户的主路径。

它将为您提供服务器的主机名,而不是客户端的主机名。实际上,您应该使用const os=require('os');因为os是一个不可变的变量。我这么做是因为它只在nodejs的v7中可用。这是一个电子可能无法使用的新特性。如果它有效,那就好了!这是不正确的,节点是在服务器端执行的,因此它将为您提供有关服务器的信息,而不是有关客户端的信息。他在哪里提到他需要客户端登录?node.js是服务器端代码?“我如何找到计算机所有者当前使用的用户名”好的,我理解,没有看到电子标签。我们不是在web环境中,而是在一个繁重的客户端环境中。没关系。这与OP的要求完全无关。Hai@carlos,我已经实现了相同的功能,并尝试在一个GET-rest api中添加此代码。我试图将username()函数的响应附加到response.send()方法,但它没有返回。请在下面找到我正在尝试的代码:var user=(async()=>{await username();}());res.status(200).send({success:'true',message:user});请不要理会我的上述评论,问题已经解决了。Hai@carlos,当我试图将相同的代码移动到linux服务器并使用getrestapi时,我是从客户机上点击的。我得到的是linux服务器用户,而不是点击url的客户端用户。当我在本地运行应用程序时,在我的windows计算机中也可以使用相同的方法。有什么帮助吗@kishoreaoe此模块基本上会将登录用户(在本例中为服务器用户)返回给您,您需要解决此问题,以了解此模块如何帮助您获取客户端用户,可能不是因为它将获取root或登录用户名。
const username = require('username');

(async () => {
    console.log(await username());
    //=> 'current_username'
})();
let user = process.env.USER || ""
app.getPath('home')