【问题标题】:hubot script load yml file, dont work with relative pathhubot脚本加载yml文件,不使用相对路径
【发布时间】:2015-03-30 22:53:54
【问题描述】:

我正在构建一个 hubot 脚本,我想在其中加载一个 yml 文件。 我正在使用 yamljs npm 包来读取 YAML 文件。

问题是它总是说“没有这样的文件或目录”错误。 如果我输入绝对路径,它会起作用。

我错过了什么? 我正在加载这样的文件:

feeds = YAML.load('../feeds.yml');

这是我的目录结构:

【问题讨论】:

  • 为什么要加载yml文件?如果您想使用在 feeds.yml 中声明的环境变量,例如 (HUBOT_VAR: test),您可以使用 process.env.HUBOT_VAR 轻松访问它。有关详细信息,请参阅环境变量部分 here

标签: node.js coffeescript filesystems yaml hubot


【解决方案1】:

您从哪里执行脚本?在node中,fs中的路径文件是相对于process.cwd()的。

可以使用文件名的相对路径,但请记住该路径 将相对于 process.cwd()。

来源:http://nodejs.org/api/fs.htmlhttps://stackoverflow.com/a/16730379/1007263

因此,如果您的脚本与feeds.yml 位于同一目录中,您应该:

feeds = YAML.load('./feeds.yml');

否则,YAML 中可能存在错误。在这种情况下,您可以简单地使用path 直接传递绝对路径。

path.resolve('../feeds.yml')

来源:http://nodejs.org/api/path.html#path_path_resolve_from_to

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多