如何在我/服务器路径中的meteor应用程序中读取公共目录。
我尝试使用原生 'fs'
包但我一直得到一个文件/目录未找到错误。
var fs = Npm.require('fs');
var files = fs.readdirSync('/public/soundfiles/');
有没有人使用文件系统包来读取流星应用程序中的静态文件?
如何在我/服务器路径中的meteor应用程序中读取公共目录。
我尝试使用原生 'fs'
包但我一直得到一个文件/目录未找到错误。
var fs = Npm.require('fs');
var files = fs.readdirSync('/public/soundfiles/');
有没有人使用文件系统包来读取流星应用程序中的静态文件?
访问没有“/ public”部分的文件。在一个正在运行的Meteor应用程序中 public
目录成为您的根,以及位于的所有内容 /public/whatever
可以访问 /whatever
。
此外,如果您正在玩文件,您可能会发现这些有用:
我了解到,如果您没有在外面显示文件,最好将文件上传到您的私人文件夹中。 在我的情况下,我需要存储XML上传并处理它们。 起初我将XML写入公共文件夹,但这会触发重新加载。 然后我将上传文件夹重命名为/public/.#uploads,这将停止Meteor的重新加载,但是又一次......它在构建过程中完全忽略了该文件夹,并且构建中不存在上传的文件夹(在此过程中抛出ENOENT错误)读)。
所以我想出最好将文件放在/ private / files中,然后阅读如下:
result = fs.readdirSync('assets/app/files')
私有文件夹中的所有内容都将移动到Assets文件夹,在运行时期间有一个APP文件夹可用(您在构建文件夹结构中没有看到)。
它只是简单的转储 result = fs.readdirSync('.')
查看您所在的文件夹并查看结构。
*** UPDATE *****
本地放入文件 private
文件夹仍然触发meteor重建/更新(可能不在生产中......)所以我发现另一个解决方案使用UploadServer来定义上传目录:
https://github.com/tomitrescak/meteor-uploads
这不再是真的。对于Meteor 0.8,文件夹“../client/app”是公开的。因此,使用fs.readdirSync('../ client / app')来公开获取文件和文件夹。
资料来源:个人经历和 https://stackoverflow.com/a/18405793
对于meteor 1.0.2 public是/web.browser/app/ 通过输入.meteor dir进行检查 linux中的总路径/home/user/your_app_name/.meteor/local/build/programs/web.browser/app/ 要获得root是`process.env.PWD或process.cwd()。 我不确定它的工作是否已部署。
_meteor_bootstrap_.serverDir +'/assets/app'
这是私人文件夹的路径。
这在Meteor 1.0中对我有用:
var fs = Npm.require('fs')
var xsd = fs.readFileSync(process.cwd().split('.meteor')[0] + 'server/company.xsd', 'utf8')
对于Meteor 1.4,请使用服务器资产。 请参阅有关资产的官方文档 http://docs.meteor.com/api/assets.html