• Node.js Video Tutorials

Node.js - os.userInfo() 方法



Node.js 的 os.userInfo() 方法属于 os 模块,它返回一个包含当前有效用户信息的对象,例如 'username'、'uid'、'gid'、'shell''homedir'

如果用户没有 usernamehomedir,则会抛出 SystemErroros.userInfo() 方法返回的对象中名为 'homedir' 的属性值由操作系统提供。

以下是返回对象属性的描述。

  • uid − 用户标识符,用于指定当前有效用户。

  • gid − 组 ID;它是将用户链接到其他具有某些共同点的用户的标识符。

  • username − 指定当前有效用户的用户名。

  • homedir − 指定当前有效用户的 home 目录。

  • shell − 当前有效用户正在使用的命令行解释器。

语法

以下是 Node.js os.userInfo() 方法 的语法 −

os.userInfo([options])

参数

此方法仅接受一个参数 options,它是可选参数。

  • encoding 指定返回数据的字符编码。如果 encoding 设置为 'buffer',则 username、shellhomedir 的值将是 'Buffer' 的实例。如果 encoding 设置为 'utf8',则值将是 'utf8' 的实例。默认情况下,实例为 'utf8'。

返回值

此方法返回的对象包含名为 'username'、'uid'、'gid'、'shell''homedir' 的属性。而在 Windows 上,'uid''gid'−1'shell'null

示例

当没有参数传递给方法时,它将采用默认值 'utf8',返回对象属性的值将是 'Buffer' 实例。

在以下示例中,我们尝试通过将 Node.js userInfo() 方法 记录到 控制台 来打印当前有效用户信息。

const os = require('os');

console.log(os.userInfo());

输出

{ 
   uid: 1000,
   gid: 1000,
   username: 'webmaster',homedir: '/home/webmaster',
   shell: '/bin/bash' 
}

注意 − 为了获得准确的结果,最好在本地执行上述代码。

执行上述程序后,os.userInfo() 方法 返回一个对象,其中包含有关当前有效用户的的信息,如下面的输出所示。

{
   uid: -1,
   gid: -1,
   username: 'Lenovo',
   homedir: 'C:\\Users\\Lenovo',
   shell: null
}

示例

如果 os.userInfo() 方法'encoding' 设置为 'utf8',则返回对象属性的值将是 'Buffer' 实例。

在以下示例中,我们尝试将 encoding 值指定为 'utf8'。然后我们打印当前有效用户信息。

const os = require('os');

var option = {
    encoding: 'utf8'
};

console.log(os.userInfo(option));

输出

{ 
   uid: 1000,
   gid: 1000,
   username: 'webmaster',
   homedir: '/home/webmaster',
   shell: '/bin/bash' 
}

注意 − 为了获得准确的结果,最好在本地执行上述代码。

执行上述程序后,os.userInfo() 方法 返回的对象打印了 'username'、'uid'、'gid'、'shell''homedir' 的值作为 'utf8' 实例。

{
   uid: -1,
   gid: -1,
   username: 'Lenovo',
   homedir: 'C:\\Users\\Lenovo',
   shell: null
}

示例

在以下示例中,我们尝试将 encoding 值指定为 'buffer'。然后我们通过将 userInfo() 方法记录到控制台来返回当前有效用户信息。

const os = require('os');

var option = {
   encoding: 'buffer'
};

console.log(os.userInfo(option));

输出

{ 
   uid: 1000,
   gid: 1000,
   username: <Buffer 77 65 62 6d 61 73 74 65 72>,
   homedir: <Buffer 2f 68 6f 6d 65 2f 77 65 62 6d 61 73 74 65 72>,
   shell: <Buffer 2f 62 69 6e 2f 62 61 73 68> 
}

注意 − 为了获得准确的结果,最好在本地执行上述代码。

执行上述程序后,os.userInfo() 方法 返回的对象打印了 'username'、'uid'、'gid'、'shell''homedir' 的值作为 'buffer' 实例。

{
  uid: -1,
  gid: -1,
  username: <Buffer 4c 65 6e 6f 76 6f>,
  homedir: <Buffer 43 3a 5c 55 73 65 72 73 5c 4c 65 6e 6f 76 6f>,
  shell: null
}
nodejs_os_module.htm
广告