2014-12-08 44 views
2

我正在使用NPM(Node.js)來嘗試和遍歷我的Meteor項目中的所有文件夾。 然而,我的node.js的代碼,我只能似乎流星訪問這些文件夾: 1)服務器 2)LIB 3)私人瞭解流星JS文件結構和訪問所有文件夾

我找不到: 1)客戶端 2.)public 3.)我只是爲了試驗而添加到項目中的其他文件夾。

我用來列出目錄的代碼位於服務器方法內的.js文件中。 這裏是我使用的代碼:

var fs = Npm.require('fs'); 
var dir = './'; 
var files = fs.readdirSync(dir); 

,我得到以下打印到控制檯:

I20141208-15:18:24.272(8)? [ 'app', 
I20141208-15:18:24.272(8)? 'assets', 
I20141208-15:18:24.273(8)? 'boot.js', 
I20141208-15:18:24.273(8)? 'config.json', 
I20141208-15:18:24.273(8)? 'node_modules', 
I20141208-15:18:24.273(8)? 'npm', 
I20141208-15:18:24.273(8)? 'npm-shrinkwrap.json', 
I20141208-15:18:24.273(8)? 'package.json', 
I20141208-15:18:24.273(8)? 'packages', 
I20141208-15:18:24.273(8)? 'program.json', 
I20141208-15:18:24.274(8)? 'start.sh' ] 

我如何可以訪問客戶端文件夾,公用文件夾,等??? 畢竟,這些文件夾和裏面的文件最終都在'服務器'中,但也許處於不同的級別。 非常感謝您的幫助。

回答

3

使Node.js的過程流星應用程序的當前工作目錄是:

.meteor/local/build/programs/server 

您的客戶端應用程序的內容將位於:

.meteor/local/build/programs/web.browser/app 

如果您想要在服務器端節點訪問此文件夾,您需要執行以下操作:

var clientFilesDir=process.cwd()+"/../web.browser/app"; 
var clientFiles=fs.readdirSync(clientFilesDir); 
+0

謝謝你的幫助 – preston 2014-12-09 00:35:52

1

您可以通過PWD環境變量獲取根目錄。在Meteor中讀取環境變量是通過process.env對象完成的。但我不確定這是如何在Windows中工作的。

var fs = Npm.require('fs'); 
    var dir = process.env.PWD; 
    var files = fs.readdirSync(dir); 
+0

謝謝你的幫助... – preston 2014-12-09 00:36:25