从meteor应用程序中的目录读取文件
我怎样才能读取我/服务器path中的meteor应用程序中的公共目录。
我尝试使用本地的'fs'
包,但我不断收到文件/目录未find错误。
var fs = Npm.require('fs'); var files = fs.readdirSync('/public/soundfiles/');
有没有人使用文件系统包来读取meteor应用程序中的静态文件?
访问没有“/ public”部分的文件。 在一个正在运行的Meteor应用程序中, public
目录变成你的根目录,而位于/public/whatever
都可以在/whatever
处访问。
另外,如果你玩弄文件,你可能会发现这些有用的:
- FileSaver.js
- CollectionFS
我了解到,如果您不在外部显示,最好将file upload到您的私人文件夹中。 在我的情况下,我需要存储XML上传和处理它们。 起初,我将XML写入公用文件夹,但会触发重新加载。 然后我将上传文件夹重命名为/public/.#uploads,这将停止Meteor的重新加载,但是再次…它在构build过程中完全忽略该文件夹,并且上传的文件夹不会存在于构build中(在执行期间抛出ENOENT错误读)。
所以我想出了最好把文件放在/ private / files然后阅读如下:
result = fs.readdirSync('assets/app/files')
私人文件夹中的所有内容都将被移动到资源文件夹中,在运行时有一个可用的APP文件夹(您在生成文件夹结构中看不到)。
它有助于简单地转储result = fs.readdirSync('.')
来查看你在哪个文件夹中并查看结构。
***更新*****本地文件放在private
文件夹仍然触发meteor重build/更新(可能不是在生产..)所以我发现了另一个解决scheme,使用UploadServer只是定义上传目录: https:// github。 COM / tomitrescak /meteor上传
这不再是事实。 对于meteor0.8,文件夹“../client/app”是公开的。 因此,使用fs.readdirSync('../ client / app')公开获取文件和文件夹。
资料来源:个人经验和https://stackoverflow.com/a/18405793
对于meteor1.0.2 public是/web.browser/app/通过input.meteor dir进行检查在linux中的总path/home/user/your_app_name/.meteor/local/build/programs/web.browser/app/然后到达根是`process.env.PWD或process.cwd()。 我不知道是否部署了它的工作。
_meteor_bootstrap_.serverDir +'/assets/app'
这是私人文件夹的path。
这在我的Meteor 1.0中是适用的:
var fs = Npm.require('fs') var xsd = fs.readFileSync(process.cwd().split('.meteor')[0] + 'server/company.xsd', 'utf8')
对于meteor1.4,使用服务器资产。 请参阅资产官方文档http://docs.meteor.com/api/assets.html