2015-07-14 6 views
5

Ich bin mit Meteor JS ... und in meinem Meteor App Ich bin mit Knoten, den Inhalt verschiedenen Verzeichnisse innerhalb der App abfragen ....process.env.PWD vs process.cwd()

Wenn Ich verwende process.env.PWD, um den Inhalt eines Ordners abzufragen. Ich erhalte ein anderes Ergebnis, wenn ich process.cwd() verwende, um die Ergebnisse eines Ordners abzufragen.

var dirServer = process.env.PWD + '/server/'; 
var dirServerFiles = fs.readdirSync(dirServer); 
console.log(dirServerFiles); //outputs: [ 'ephe', 'fixstars.cat', 'sepl_30.se1', 'server.js' ] 

vs

var serverFolderFilesDir = process.cwd() +"/app/server"; 
var serverFolderFiles = fs.readdirSync(serverFolderFilesDir); 
console.log(serverFolderFiles); //outputs: [ 'server.js' ] 

mit process.cwd() zeigt nur 'server.js' im Meteor.

Warum ist das? Wie unterscheidet sich process.cwd() von process.env.PWD?

+0

Ich habe nicht alle Ihre (langen) Post gelesen, aber was ist die Frage überhaupt? Könnte es sein, dass Sie mit Layout Ihrer Verzeichnisse während der Entwicklung und nach dem Build-Prozess kämpfen. Vielleicht prüfen Sie, was bei '.meteor/local/build' gebaut wurde. Ansonsten versuchen Sie bitte, Ihre Frage kurz zu präzisieren. –

Antwort

8

Sie sind verwandt, aber nicht das Gleiche.

process.env.PWD ist das Arbeitsverzeichnis, wenn der Prozess gestartet wurde. Dies bleibt für den gesamten Prozess gleich.

process.cwd() ist das aktuelle Arbeitsverzeichnis. Es spiegelt Änderungen wider, die über process.chdir() vorgenommen wurden.

Es ist möglich, PWD zu manipulieren, aber dies zu tun wäre sinnlos, diese Variable wird von nichts benutzt, sie ist nur zur Bequemlichkeit da.

Für Pfade Berechnen Sie wahrscheinlich wollen, dass es auf diese Weise tun:

var path = require('path'); 
path.resolve(__dirname, 'app/server') 

Wo __dirname das Verzeichnis dieser Code die Quelldatei reflektiert in wohnt definiert ist. Es ist falsch zu erwarten, dass cwd() irgendwo in der Nähe sein wird. Wenn Ihr Serverprozess von einem beliebigen Ort außer dem Hauptquellverzeichnis gestartet wird, sind alle Ihre Pfade unter Verwendung von cwd() falsch.