在nodejs中使用swagger.yaml中的env变量



试图弄清楚如何在Swagger.YAML配置文件中访问Env变量。可以使用process.env.VARNAME在NodeJS应用程序内访问该变量。我想在Swagger.yaml文件中使用相同的变量。像

definations: 
     myvariabledetail: "${process.env.VARNAME}"

。我已经尝试了不同的组合,包括"${process.env.VARNAME}"${process.env.VARNAME}${VARNAME}等。

yaml作为文本文件格式对环境变量一无所知。一个解决方案是加载YAML,然后具有使用正则拨号来查找环境变量并用当前值替换它们的代码。然后最终将所得的字符串传递到您的yaml解析器中。

您可以使用Envsub:

const envsub = require('envsub');
envsub({
    templateFile: `${__dirname}/input.yml`,
    outputFile: '/dev/null', // or filename to save result
})
    .then(({ outputContents }) => console.log(outputContents));

最新更新