如何使用NodeJS找到计算机所有者当前使用的用户名(登录时)?
我已经搜了一下,但还没找到任何东西......
答案 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
您可以使用以下示例获取带有节点的客户端用户代理: