构建Node.js应用程序时,通常需要将环境参数传递给应用程序,例如数据库凭据或API键。本教程探讨了如何使用EJS模板引擎以及如何在应用程序中读取它们。
步骤1:安装依赖项
首先,我们需要安装两个软件包-ejs 和 dotenv 。 EJS是一种模板引擎,dotenv将环境变量从.env文件加载到process.env。
npm install ejs dotenv
步骤2:创建一个配置文件
创建一个名为config.yaml的文件,该文件将保存您的应用程序的配置值。
port: <%= process.env.PORT %>
database:
host: <%= process.env.DB_HOST %>
username: <%= process.env.DB_USER %>
password: <%= process.env.DB_PASS %>
在此文件中,我们使用EJS模板语法将环境变量插入配置值。
步骤3:创建.env文件
在项目的根部创建一个名为.env的文件,该文件将保留实际的环境变量。
PORT=3000
DB_HOST=localhost
DB_USER=root
DB_PASS=password
步骤4:读取配置文件
现在,我们可以使用EJ和刚刚加载的环境变量读取配置文件。在您应用程序的输入点文件中,添加以下代码:
const fs = require('fs');
const ejs = require('ejs');
const yaml = require('js-yaml');
require('dotenv').config();
const configTemplate = fs.readFileSync('config.yaml', 'utf8');
const configString = ejs.render(configTemplate);
try {
const config = yaml.load(configString, 'utf-8');
console.log(config);
} catch (e) {
console.log(e);
}
在这里,我们正在将config.yaml文件读取到字符串中,并使用eJS渲染它以插入环境变量,然后使用JS-yaml库来解析结果字符串。然后将结果配置对象记录到控制台。
同样,正常参数也可以使用EJ传递给YAML文件。例如,如果您只想在运行时动态插入用户的电话号码到YAML配置文件,则可以按照相同的步骤进行操作:
phoneNumber: <%= phoneNumber %>
然后,在您的node.js应用程序中,您可以使用eJS传递 phonenumber 参数:
const ejs = require('ejs');
const fs = require('fs');
const template = fs.readFileSync('path/to/your/config.yaml', 'utf8');
const rendered = ejs.render(template, { phoneNumber: '919999999999' });
console.log(rendered);
这将输出插入phonenumber参数的YAML代码:
phoneNumber: 919999999999
结论
在本教程中,我们探索了将环境变量和其他变量作为参数传递给Node.js应用程序中的YAML文件的过程,利用EJS模板引擎的功率无缝读取和管理它们。通过使用诸如EJS之类的模板引擎,我们可以保持配置文件简洁且易于阅读,同时仍允许在需要时注入必需环境变量。