我有一个程序,需要有长的多行字符串。将它们存储在.js文档中是一件痛苦的事情,因为js没有多行字符串,而我最终得到的是屏幕宽度的两倍长的行,看起来就像"这是一个例子"一样丑陋
有没有一种方法可以创建一个txt文件,从中我可以用新行导入字符串(或者至少只导入字符串)?
有一个Meteor Assets
对象,允许您读取应用程序private
目录中的文件,例如文本文件。
Assets.getText("foo.txt", function (err, res) { ... });
请参阅完整文档:http://docs.meteor.com/#assets
上一个答案仅适用于公共文件。如果要访问仅在服务器上可见的文件数据,则可能应该使用"fs"npm模块。详细描述如下:http://www.eventedmind.com/posts/meteor-file-uploader-part-2-server-side-save
meteor-yaml包使这一点变得很容易-它自动加载项目中的任何.yaml文件,将它们解析为JavaScript对象,并使它们在yaml.data.中可用
在我的应用程序中,我有一些流星应用程序之外的代码需要相同的设置,所以我更喜欢将配置文件放在流星项目目录之外。然后我加载这样的文件:
var fs = Npm.require('fs');
fs.readFile('<path to file>.yaml', 'utf8', function(err, data) {
if(err) {
//Throw exception if the file is missing
throw new Error("Missing config file")
}
else {
//Read the file into a JavaScript object
config = YAML.parse(data);
}
});
不幸的是,流星yaml包与流星团队希望现在加载节点包的方式有点过时,所以如果你使用的是最近版本的流星,该包就无法开箱即用。
我提交了一个关于这个的错误,但与此同时,为了避免它,我将它作为一个私人包安装,而不是从大气中安装,并修复了这个错误。为此:
- 克隆项目包/目录下的回购
- 注释掉Npm.require行
添加对dependent:的调用
Nmm.dependents({yamljs:"0.1.4"});
奔跑流星。Meteor将检测Meteor-yaml私有包并安装依赖项。