meteor,有没有办法从javascript文本文件中导入字符串?

meteor,有没有办法从javascript文本文件中导入字符串?,javascript,meteor,Javascript,Meteor,我有一个程序,我需要有长的多行字符串。将它们存储在.js文档中是一件痛苦的事情,因为js没有多行字符串,我最终得到了一条两倍于屏幕宽度的线,看起来就像“这是一个示例。\n” 有没有办法创建一个txt文件,从中我可以导入带有新行的字符串(或者至少只导入字符串)?前面的答案仅适用于公共文件。如果您想访问仅在服务器上可见的文件数据,您可能应该使用“fs”npm模块。这里有详细描述:有一个Meteor资产对象,允许您以以下方式读取应用程序的私有目录中的文件,例如文本文件 Assets.getText("

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


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

前面的答案仅适用于公共文件。如果您想访问仅在服务器上可见的文件数据,您可能应该使用“fs”npm模块。这里有详细描述:

有一个Meteor
资产
对象,允许您以以下方式读取应用程序的
私有
目录中的文件,例如文本文件

Assets.getText("foo.txt", function (err, res) { ... });
请参阅完整文档:

该软件包简化了这一过程—它会自动加载项目中的任何.yaml文件,将其解析为JavaScript对象,并使它们在yaml.data中可用

在我的应用程序中,meteor应用程序之外的一些代码需要相同的设置,因此我更喜欢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); 
  }
});
var fs=Npm.require('fs');
fs.readFile('.yaml',utf8',函数(err,data){
如果(错误){
//如果文件丢失,则引发异常
抛出新错误(“缺少配置文件”)
}
否则{
//将文件读入JavaScript对象
config=YAML.parse(数据);
}
});
不幸的是,meteor yaml软件包与meteor团队希望现在加载节点软件包的方式有点过时,因此,如果您使用的是meteor的最新版本,该软件包将无法开箱即用

我对此提出了一个建议,但同时为了解决这个问题,我安装了它作为一个,而不是从大气中安装,并修复了这个错误。为此:

  • 克隆项目包/目录下的repo
  • 注释掉Npm.require行
  • 将调用添加到依赖项:

    Npm依赖({yamljs:“0.1.4”})

  • 运行流星。Meteor将检测Meteor yaml私有包并安装依赖项


  • 有关如何呈现字符串的详细信息将非常有用。是html吗?它在对话框中吗?这个程序做什么?可能是Nope的复制品,绝对不是复制品;这在Meteor中很难做到,而且这个功能还没有实现。哦,看来它是为meteorite设计的。我不能用那个。无论如何,谢谢。这提醒了我——meteor yaml软件包有一个愚蠢的错误,使得它不能与meteor的最新版本一起工作。为了解决这个问题,我安装了一个定制包,而不是大气包。我将更新我的答案,将InfoEphue包括在内——将其安装为私有软件包的说明应该在没有meteorite的情况下工作。文档说,资产必须是静态的。有什么方法可以让我在应用程序运行时加载新文件并获取其文本吗?你需要动态地为这些文件提供服务。