2016-11-04 42 views
10

如何使用NodeJS找到計算機所有者當前(登錄時)正在使用的用戶名?在NodeJS中查找OS用戶名

我已經搜索了一下週圍,但沒有發現任何東西......

回答

25

我不是確定爲什麼,但有人添加了一個答案,然後迅速將其刪除後...我雖然快得趕上它,並在檢查後,這是做我之前問的最短和最有效的方式:

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

唯一的問題是,在Windows 10中,它返回已經使用的所有者帳戶的名字(只是擡頭)。 其他一切工作都很好!

+0

我這樣做了,但僅僅是因爲它僅在nodejs的v7中可用。它是電子可能無法使用的新功能。如果它工作,那麼很好! – corn3lius

+1

是的!萬分感謝! – drowZ

+0

這是不正確的,節點在服務器端執行,所以它會給你關於你的服務器的信息,而不是關於客戶端。 –

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

它會給你服務器的主機名,而不是客戶端。 –

+0

我有更新代碼。 –

0

如果它不需要是跨操作系統(只是基於* NIX),一個方式,你可以做(記住,高管可能有潛在危險的使用,如果你將其參數化):

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

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

如果你想使用藍鳥的承諾,不要忘了:npm install bluebird --save