2013-10-31 8 views
9

Ich versuche mkdirp für ein Projekt zu verwenden, aber wenn ich füttere es eine Var mit meinem Verzeichnispfad ich möchte erstellt, es erstellt nur die erste Hälfte davon. Ich habe das Modul lokal mit npm installiert. Ich benutze Node v0.10.20 auf einem Raspberry Pi.Knoten js Modul mkdirp erstellt nur die Hälfte der Verzeichnisse

Dies ist, wie es aussieht:

var filePath = "upload/home/pi/app/temp"; 
mkdirp(filePath, function(error) { 
    if(error) { 
     console.log(error); 
    } else { 
     ... 
    } 
}); 

ich den Weg nicht einen Fehler zu schaffen, aber es schafft nur „upload/home/pi“, aber wenn ich wieder mein Skript ausführen, erstellt es der Rest der Verzeichnisstruktur. Upload ist ein Verzeichnis im aktuellen Arbeitsverzeichnis, das der Benutzer zu Hause ist.

Ich mailte dem Autor des Moduls, der vorschlug, dass es sein könnte, weil ich ein Flash-Laufwerk als mein Medium benutze, was wiederum darauf hinweist, wenn IO-Operationen abgeschlossen sind, was ich node.js denke hat den Pfad erfolgreich auf den Datenträger geschrieben. Wie soll ich mein Problem angehen? Ich schätze, ich kann überprüfen, ob das Verzeichnis erstellt wurde, und das bis dahin wiederholen, aber das ist wie das Falsche. Irgendwelche Vorschläge willkommen.

Danke.

+1

Yep, ist Looping die falsche Sache. Haben Sie es manuell versucht, d. H. Mkdir mit einem Rückruf, der mkdir mit einem Rückruf aufruft, der mkdir aufruft? – Ryan

+0

Nein, das habe ich noch nicht, ich schaue mir das an, danke für den Vorschlag. Schade, das Rad zu erfinden! Und ich würde immer noch gerne wissen, warum es sich so verhält. – sacredheart

+1

Haben Sie [this] (https://github.com/substack/node-mkdirp/issues/25) versucht? –

Antwort

0

Versuchen Sie, diese synchron zu tun:

var filePath = "upload/home/pi/app/temp"; 
mkdirp(filePath)