Найти имя пользователя ОС в NodeJS

Как найти имя пользователя, которое владелец компьютера использует в настоящее время (при входе в систему), используя NodeJS?

Я немного поискал, но ничего не нашел...

5 ответов


Я не уверен, почему, но кто-то добавил ответ, а затем быстро удалил его... Я был достаточно быстр, чтобы поймать его, и после проверки, это кратчайший и наиболее эффективный способ сделать то, что я просил:

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

единственная проблема заключается в том, что в Windows 10 он возвращает первое имя учетной записи владельца, которая была использована (просто heads up). Все остальное работает совершенно нормально!


one object you will get username
var os= require('os')
console.log(os.userInfo());

определенно, самый простой способ сделать это-использовать username

установка:

$ npm install username

затем:

const username = require('username');

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

Если это не должны быть кросс-операционные системы (просто *nix на основе), один из способов, который вы могли бы сделать (имейте в виду, что exec может быть потенциально рискованно использовать, если вы параметризуете его):

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

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

Если вы хотите использовать bluebird для обещаний, не забудьте о:npm install bluebird --save


Если вы хотите получить информацию о клиенте witch call a route на вашем сервере, вы должны проанализировать клиент useragent.

https://msdn.microsoft.com/en-us/library/ms537503 (v=против 85).aspx

вы можете получить агент пользователя клиента с узлом, используя эти примеры :

как обрабатывать user-agent в среде nodejs?