2

我有一个程序,我需要有长的多行字符串。将它们存储在 .js 文档中很痛苦,因为 js 没有多行字符串,我最终得到的长度是屏幕宽度线的两倍,看起来像“这是一个示例。\n”

有没有办法拥有一个 txt 文件,我可以从中导入带有新行的字符串(或者至少只是导入字符串)?

4

3 回答 3

7

有一个 MeteorAssets对象可让您读取private应用程序目录中的文件,例如以下列方式读取文本文件。

Assets.getText("foo.txt", function (err, res) { ... });

查看完整文档:http ://docs.meteor.com/#assets

于 2013-07-04T16:28:17.513 回答
2

以前的答案仅适用于公共文件。如果您想访问仅在服务器上可见的文件数据,您可能应该使用“fs”npm 模块。这里有详细描述:http ://www.eventedmind.com/posts/meteor-file-uploader-part-2-server-side-save

于 2013-07-03T20:30:23.593 回答
1

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 包与现在的流星团队想要加载节点包的方式有点过时,所以如果您使用的是最新版本的流星,该包将无法开箱即用。

我对此提出了一个错误,但同时为了解决这个问题,我将它安装为一个私有包,而不是从大气中安装它,并修复了这个错误。去做这个:

  1. 在你的项目 packages/ 目录下克隆 repo
  2. 注释掉 Npm.require 行。
  3. 添加对依赖的调用:

    Npm.depends({yamljs: "0.1.4"});

  4. 运行流星。Meteor 会检测meteor-yaml 私有包并安装依赖。

于 2013-07-10T18:29:38.093 回答