meteorjs – dynamic扫描文件夹并添加到collections

我是meteor和JavaScript的新手,并试图让应用程序search一个MP3文件夹,然后将位置和名称添加到集合。

如果有预先存在的(javascript)方法,请告诉我哪里可以find它们。 如果你也知道什么可能是从大气或git回购改装,请让我知道。 谢谢!

这是一个简单的方法来解决你想要做的事情

mp3list.html:

<head> <title>MP3 Collection</title> </head> <body> {{> mp3list}} </body> <template name="mp3list"> <ul> {{#each mp3s}} <li>{{name}}</li> {{/each}} </ul> </template> 

mp3list.js

 MP3s = new Mongo.Collection('mp3s'); MP3_DIRETORY = '/tmp/mp3'; INTERVAL_MILLISECONDS = 1000; if (Meteor.isClient) { Template.mp3list.helpers({ mp3s: function() { return MP3s.find(); }, }); } if (Meteor.isServer) { var fs = Npm.require('fs'); Meteor.setInterval(function() { var mp3s = fs.readdirSync(MP3_DIRETORY).filter( function(i) { return i.substr(i.length - 4) === '.mp3'; } ); mp3s.forEach(function(i) { MP3s.upsert({name: i}, { $set: {name: i}}); }); }, INTERVAL_MILLISECONDS); } 

为了扩展这个(即recursion目录search), 这里的答案提供了更多的细节。 但是,如果您的应用程序正在扫描大量的文件,这种简单的方法将不会扩展。 我build议然后看基于ionotify的解决scheme(假设Linux,其他操作系统将有类似的API)。 watchr
也可能是一个很好的select(我没有使用它,或inotify ++)。