2016-04-08 13 views
2

Node.js'de yeniyim, bu yüzden çok fazla şey bilmiyorum. Böylece temelde geçerli çalışma dizini bir dizin oluşturmak istiyor:Node.js içinde şu anki dizinde bir dizin nasıl oluşturulur

var mkdirp = require('mkdirp'); 
console.log("Going to create directory /tmp/test"); 
mkdirp('/tmp/test',function(err){ 
     if (err) { 
      return console.error(err); 
     } 
console.log("Directory created successfully!"); 
}); 

Benim şu anki dizin ben bu dizinde node main.js çalıştırmak demektir Windows üzerinde C:\Users\Owner\Desktop\Tutorials\NodeJS olduğunu. (main.js C:\Users\Owner\Desktop\Tutorials\NodeJS sürümündedir) Kodu çalıştırdıktan sonra, C:\ numaralı C: \ tmp \ test üretir. Ama şimdiki dizinde oluşturmak istiyorum, bu yüzden istediğim sonuç C:\Users\Owner\Desktop\Tutorials\NodeJS\tmp\test.

ben sadece bunu yapmak için nasıl bilmiyorum ...

cevap

2

Sen çıkış komut çalıştırıldıktan dizin (sizin durumda, node main.js çalıştırmak dizin) böylece koduna process.cwd() kullanabilirsiniz Bu gibi görünebilir:

var mkdirp = require('mkdirp'); 
var path = require('path'); 

console.log("Going to create directory /tmp/test"); 
mkdirp(path.join(process.cwd(), '/tmp/test'), function(err){ 
    if (err) { 
    return console.error(err); 
    } 
    console.log("Directory created successfully!"); 
}); 

Eğer main.js dosyasının bulunduğu ve (node main.js arayarak) çalıştırmaz nerede sadece dizin gerekiyorsa, bunun yerine process.cwd() ait __dirname değişken kullanabilirsiniz.

path.join() işlevinin, özellikle sınır eğrilerini seçenek olarak ele alabilecek bir Windows sisteminde olduğunuzda, yol sınırlayıcılarının doğru şekilde ayarlandığından emin olmak için iyi bir fikirdir.

+1

müthiş, ben tam da istediğim şey ve o ... tek bir şey çalışır, kod bloğunda bir sözdizimi hatası var. Teşekkürler. path.join (process.cwd(), '/ tmp/test') sadece bir tane gerekir) sonunda ... –

-1
var mkdirp = require('mkdirp'); 
var path = require('path'); 
console.log("Going to create directory /tmp/test"); 
mkdirp(path.join(__dirname, '/tmp/test'),function(err){ 
    if (err) { 
     return console.error(err); 
    } 
    console.log("Directory created successfully!"); 
}); 

Sen __dirname döneceğini path.join(__dirname, '/tmp/test')The name of the directory that the currently executing script resides in. Sen modül 'yolunu' eklemeniz gerekir

path.join() işe yaraması için kullanabilirsiniz.

Referans

__dirname

+0

Bu yanlış. '__dirname' mutlak yolu 'main.js' yerleştirildiği dizine döndürür, ancak yürütüldüğü yerde değil. – p4sh4

+0

Bazı kavramları anlamakta kötüyüm, ancak bu kodu yerel makinemde çalıştırdım ve OP'nin –

+0

olmasını istediği dizini oluşturduğunu doğruladım. Bu, yalnızca dosyanın bu dosya ile aynı dizinde bulunduğu belirli bir örnek yüzünden yapılıyor. koşmak, bir kenar durumdur. Teknik olarak cevabın yanlış. – p4sh4

İlgili konular