karena semua orang tahu Windows melakukan jalur dengan garis miring terbalik di mana Unix melakukan jalur dengan garis miring ke depan. node.js menyediakan path.join()
untuk selalu menggunakan garis miring yang benar. Jadi misalnya, alih-alih menulis Unix, 'a/b/c'
Anda hanya akan melakukannya path.join('a','b','c')
.
Namun, tampaknya meskipun ada perbedaan ini jika Anda tidak menormalkan jalur Anda (misalnya menggunakan path.join) dan hanya menulis jalur seperti a/b/c
node.js tidak memiliki masalah dengan menjalankan skrip Anda di Windows.
Jadi apakah ada manfaat lebih menulis path.join('a','b','c')
lebih 'a/b/c'
? Keduanya tampaknya berfungsi terlepas dari platform ...
path.join
akan menangani pembatas yang tidak perlu, yang mungkin terjadi jika jalur yang diberikan berasal dari sumber yang tidak diketahui (mis. input pengguna, API pihak ketiga, dll.).Jadi
path.join('a/','b')
path.join('a/','/b')
,path.join('a','b')
danpath.join('a','/b')
semuanya akan memberia/b
.Tanpa menggunakannya, Anda biasanya akan membuat harapan tentang awal dan akhir jalur yang digabungkan, mengetahui bahwa mereka hanya tidak memiliki atau satu tebasan.
sumber
Saya menggunakan
path.join
untuk memastikan pemisah folder di tempat yang benar, tidak harus memastikan bahwa ia menggunakan garis miring ke depan versus garis miring. Sebagai contoh:Akan dengan benar memasukkan pemisah antara www dan pengujian
/var/www/test
sumber
path.join
adalah jawaban Anda yang lain di sini stackoverflow.com/questions/9027648/… . Jawaban itu membawa saya ke sini untuk pertanyaan lain yang dijawab sendiri :)return baseDir + relativePath + filename;
. Saya segera menggantinya denganreturn path.join(baseDir, relativePath, filename);
. Ini memang sangat membantu!Jawaban singkat:
Semua
fs.*
fungsi (mis.fs.open
, Dll) memperlakukan pathname untuk Anda. Jadi, Anda tidak perlu menggunakanpath.join
diri sendiri dan membuat kode Anda tidak terbaca.Jawaban panjang:
Semua
fs.*
fungsi panggilanpath._makeLong(path)
, yang pada gilirannya panggilanpath.resolve(path)
, yang memiliki RegExps khusus untuk Windows, yang memperhitungkan garis miring terbalik\
atau garis miring/
. Anda dapat memeriksanya sendiri dengan melihat kode sumbernya di:sumber