Process.platform mengembalikan "win32" untuk Windows. Pada Windows, direktori home pengguna mungkin adalah C: \ Users [USERNAME] atau C: \ Documents and Settings [USERNAME] tergantung pada versi Windows yang digunakan. Di Unix ini bukan masalah.
Process.platform mengembalikan "win32" untuk Windows. Pada Windows, direktori home pengguna mungkin adalah C: \ Users [USERNAME] atau C: \ Documents and Settings [USERNAME] tergantung pada versi Windows yang digunakan. Di Unix ini bukan masalah.
Jawaban:
Seperti disebutkan dalam jawaban yang lebih baru , cara yang disukai sekarang adalah:
const homedir = require('os').homedir();
[Jawaban Asli] : Mengapa tidak menggunakan USERPROFILE
variabel lingkungan di win32?
function getUserHome() {
return process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'];
}
path.resolve()
mungkin memberikan beberapa normalisasi dalam hal trailing slash, berpotensi forward / backslash aneh, dll ... (terutama jika Anda mendapatkan operasi file dalam pikiran, setelah mendapatkan info ini)
os.homedir()
ditambahkan oleh PR ini dan merupakan bagian dari rilis 4.0.0 publik dari nodejs.
Contoh penggunaan:
const os = require('os');
console.log(os.homedir());
os.homedir()
merupakan mainan baru yang sangat menyedihkan.
const os = require('os');
juga
Yah, akan lebih akurat untuk mengandalkan fitur dan bukan nilai variabel. Terutama karena ada 2 variabel yang mungkin untuk Windows.
function getUserHome() {
return process.env.HOME || process.env.USERPROFILE;
}
EDIT : sebagaimana disebutkan dalam jawaban yang lebih baru, https://stackoverflow.com/a/32556337/103396 adalah cara yang tepat untuk pergi ( require('os').homedir()
).
\users\name
dan USERPROFILE miliki c:\users\name
. Jadi metode ini tidak seakurat dan sekuat @maerics '
Gunakan osenv.home()
. Itu dikelola oleh isaacs dan saya percaya digunakan oleh npm sendiri.
oshome
gunakan di os-homedir
bawah tenda, jika Anda hanya menginginkan fungsi itu.