我有一个程序,我需要有长的多行字符串。将它们存储在 .js 文档中很痛苦,因为 js 没有多行字符串,我最终得到的长度是屏幕宽度线的两倍,看起来像“这是一个示例。\n”
有没有办法拥有一个 txt 文件,我可以从中导入带有新行的字符串(或者至少只是导入字符串)?
我有一个程序,我需要有长的多行字符串。将它们存储在 .js 文档中很痛苦,因为 js 没有多行字符串,我最终得到的长度是屏幕宽度线的两倍,看起来像“这是一个示例。\n”
有没有办法拥有一个 txt 文件,我可以从中导入带有新行的字符串(或者至少只是导入字符串)?
有一个 MeteorAssets
对象可让您读取private
应用程序目录中的文件,例如以下列方式读取文本文件。
Assets.getText("foo.txt", function (err, res) { ... });
以前的答案仅适用于公共文件。如果您想访问仅在服务器上可见的文件数据,您可能应该使用“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);
}
});
不幸的是,meteor-yaml 包与现在的流星团队想要加载节点包的方式有点过时,所以如果您使用的是最新版本的流星,该包将无法开箱即用。
我对此提出了一个错误,但同时为了解决这个问题,我将它安装为一个私有包,而不是从大气中安装它,并修复了这个错误。去做这个:
添加对依赖的调用:
Npm.depends({yamljs: "0.1.4"});
运行流星。Meteor 会检测meteor-yaml 私有包并安装依赖。