2016-04-08 11 views
2

Ich bin neu bei Node.js, daher kenne ich mich nicht aus. Also im Grunde möchte ich ein Verzeichnis in dem aktuellen Arbeitsverzeichnis erstellen:Wie erstelle ich ein Verzeichnis im aktuellen Verzeichnis in Node.js

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!"); 
}); 

Mein aktuelles Verzeichnis C:\Users\Owner\Desktop\Tutorials\NodeJS unter Windows ist, das heißt, ich node main.js in diesem Verzeichnis ausgeführt werden. (main.js ist in C:\Users\Owner\Desktop\Tutorials\NodeJS) Nachdem ich den Code ausgeführt habe, generiert es C: \ tmp \ test, die in C:\ ist. Aber ich möchte es im aktuellen Verzeichnis erstellen, also das gewünschte Ergebnis ist C:\Users\Owner\Desktop\Tutorials\NodeJS\tmp\test.

Ich weiß nur nicht, wie das zu tun ...

Antwort

2

Sie process.cwd() zur Ausgabe verwenden können das Verzeichnis, in dem Befehl ausgeführt wurde (in Ihrem Fall das Verzeichnis, in dem Sie node main.js ausführen), damit Ihr Code aussehen könnte wie folgt:

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!"); 
}); 

Wenn Sie nur das Verzeichnis müssen, wo die main.js Datei befindet und wo Sie es nicht ausführen (durch node main.js Aufruf), können Sie die __dirname Variable anstelle von process.cwd().

Es ist eine gute Idee, die path.join() Funktion zu verwenden, um sicherzustellen, dass die Pfadbegrenzer richtig festgelegt sind, besonders wenn Sie auf einem Windows-System sind, das Schrägstriche als Optionen behandeln kann.

+1

fantastisch, das ist genau das, was ich will, und es funktioniert ... nur eine Sache, es gibt einen Syntaxfehler in dem Codeblock. Vielen Dank. path.join (process.cwd(), '/ tmp/test') braucht nur einen) am Ende ... –

-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!"); 
}); 

könnten Sie verwenden path.join(__dirname, '/tmp/test') wo __dirnameThe name of the directory that the currently executing script resides in.

Sie benötigen Modul 'Pfad' zurückkehren würde einschließen path.join() Arbeit zu machen.

Referenz

__dirname

+0

Das ist falsch. '__dirname' gibt den absoluten Pfad zu dem Verzeichnis zurück, in dem' main.js' steht, aber nicht wo es ausgeführt wird. – p4sh4

+0

Mein schlechtes Verständnis bestimmter Konzepte, aber ich habe diesen Code in meinem lokalen Rechner ausgeführt und verifiziert, dass er das Verzeichnis erstellt, wie das OP es will –

+0

Es tut das nur wegen dieses spezifischen Beispiels, wo die Datei im selben Verzeichnis wie es ist run, was ein Randfall ist. Technisch ist deine Antwort falsch. – p4sh4

Verwandte Themen