在NodeJS中查找OS用户名

时间:2016-11-04 13:46:09

标签: javascript node.js electron username

如何使用NodeJS找到计算机所有者当前使用的用户名(登录时)?

我已经搜了一下,但还没找到任何东西......

7 个答案:

答案 0 :(得分:47)

我不知道为什么,但是有人添加了一个答案,然后很快就将其删除了......虽然我的速度很快,但是经过检查后,这是我做之前做过的最短最有效的方法。 :

require("os").userInfo().username

唯一的问题是,在Windows 10中,它会返回已使用的所有者帐户的名字(只是抬头)。 其他一切都很完美!

答案 1 :(得分:3)

这个对象你会得到用户名:

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

答案 2 :(得分:2)

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

安装:

$ npm install username

然后:

const username = require('username');

(async () => {
    console.log(await username());
    //=> 'current_username'
})();

答案 3 :(得分:1)

process.env.USER至少也应在MAC或Linux中工作。例如

let user = process.env.USER || ""

答案 4 :(得分:0)

你可以简单地使用

app.getPath('home')

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

答案 5 :(得分:-1)

如果它不需要是跨操作系统(仅基于* nix),您可以采用一种方法(请记住,如果您对其进行参数化,exec可能存在风险):

const Promise = require( 'bluebird' ),
      exec    = Promise.promisify( require( 'child_process' ).exec );

exec( 'id -un' ).then( ( username )=> {
 // do something about it
});

如果您想将蓝鸟用于承诺,请不要忘记:npm install bluebird --save

答案 6 :(得分:-6)

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

https://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx

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

How to handle user-agent in nodejs environment?