0
對流星來說,我對整個客戶端/服務器的東西感到很尷尬。超好玩。如何獲取Meteor中的模板文件列表?
我想要讀取文件夾中所有文件的列表,並將它們打印在UI上的模板上。它必須是可能的。這是代碼。
js文件:
var availableFiles = [];
if (Meteor.isServer) {
var fs = Npm.require('fs');
availableFiles = fs.readdirSync(process.env.PWD + '/public/uploads');
console.log(availableFiles);
}
Router.map(function() {
this.route('home', {
path: '/',
template: 'home',
data: {files: availableFiles}
});
});
HTML文件:
<template name="home">
{{#each data.files}}
{{this}}
{{/each}}
</template>
我試圖把FS上的路由定義數據的函數調用裏面,但我得到「NPM不定義「錯誤。我不知道這是應該如何結構化,請記住,newb在這裏。任何幫助將不勝感激。
從應用程序根目錄內的目錄中讀取內容非常棘手(並且始終詢問)。問題在於,當你部署時,目錄結構會改變。無論如何,解決這個問題的一個更好的辦法是在用戶上傳任何東西時寫入集合。然後你可以讀取集合而不是目錄。 –
我實際上通過使用process.env.PWD變量擺脫了這個問題,並以這種方式獲得正確的目錄。我沒有通過這個應用程序上傳,這些文件相當大,並放置在「上傳」(非常名)的文件夾進行處理。我也不希望每次文件更改時都要向數據庫寫入單個列表,這很痛苦。 – blacktone