我有一个程序,我需要长多行字符串。将它们存储在.js文档中是一件痛苦的事,因为js没有多行字符串,而且我的屏幕宽度线的长度只有两倍,看起来像“这是一个例子。\ n”。
有没有办法有一个txt文件,我可以用新行导入字符串(或者至少只导入字符串)?
答案 0 :(得分:7)
有一个Meteor Assets
对象,允许您以下列方式读取应用的private
目录中的文件,例如文本文件。
Assets.getText("foo.txt", function (err, res) { ... });
查看完整文档: http://docs.meteor.com/#assets
答案 1 :(得分:2)
以前的答案仅适用于公共文件。如果要访问仅在服务器上可见的文件数据,则应该使用“fs”npm模块。这里详细描述:http://www.eventedmind.com/posts/meteor-file-uploader-part-2-server-side-save
答案 2 :(得分:1)
meteor-yaml包使这很简单 - 它会自动加载项目中的任何.yaml文件,将它们解析为JavaScript对象,并使它们在YAML.data中可用。
在我的应用程序中,我在流星应用程序之外有一些需要相同设置的代码,所以我更喜欢将配置文件放在meteor项目目录之外。然后我像这样加载文件:
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软件包有点过时了,流星团队现在想要加载节点包,所以如果你使用的是最新版本的meteor,那么这个软件包将无法开箱即用
我提交了bug关于此问题,但在此期间,为了解决这个问题,我将其安装为private package,而不是从大气中安装,并修复了错误。要做到这一点:
添加对depends的调用:
Npm.depends({yamljs:“0.1.4”});
运行流星。 Meteor将检测meteor-yaml私有包并安装依赖项。