在Node.js中使用环境变量的swagger.yaml

4

我想知道如何在swagger.yaml配置文件中访问环境变量。在nodejs应用程序中,可以使用process.env.VARNAME访问该变量。我希望在swagger.yaml文件中也能使用同样的变量。类似于:

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

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

2个回答

5

作为一种文本文件格式,YAML并不知道环境变量。解决方案是加载YAML,然后使用正则表达式查找环境变量,并用当前值替换它们。最后将得到的字符串传递给您的YAML解析器。


我明白了,这解释了一些事情。我会处理并在这里更新。 - Niraj
@NikhilManapure,我已经发布了一个带有库的答案,可能会对你有所帮助 :) - romash1408

2
您可以使用envsub:

envsub

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接