我有一个运行良好的node-red项目。我备份了.node-red文件夹,现在已经在同一台计算机上重新安装了ubuntu和node-red。我正在使用node-red-contrib-postgrestor节点访问PostgreSQL。安装所有必需的节点并将flow.json和settings.js文件复制到.node-red文件夹后,我无法使该流与PostgresSQL数据库进行身份验证。我已经编辑了节点属性,并重新输入了用户名/密码信息并重新部署了。我尝试将settings.js文件中的credentialSecret属性更改为新的秘密字符串,并且尝试将属性更改为false。 flow_cred.json文件是:(1)未创建,(2)使用内容“ {}”创建,或(3)使用加密数据创建。在任何情况下,我都无法使节点通过数据库进行身份验证。我尝试将调试语句放入postgrestor.js文件中,该文件显示用户名和密码为“未定义”。
function PostgrestorNode(config) {
const node = this;
RED.nodes.createNode(node, config);
node.topic = config.topic;
node.config = RED.nodes.getNode(config.postgresDB);
node.on('input', (msg) => {
node.warn(`user: ${node.config.user}, password: ${node.config.password}`);
const query = mustache.render(config.query, {msg});
const pool = new Pool({
user: node.config.user,
password: node.config.password,
host: node.config.host,
port: node.config.port,
database: node.config.database,
ssl: node.config.ssl,
max: node.config.max,
min: node.config.min,
idleTimeoutMillis: node.config.idle
});
最初,node-red程序在Ubuntu 16.04中运行。问题发生时,我升级到了18.04。从那以后,我回去重新安装16.04,以为那是问题所在,但现在无论如何都无法正常工作。
我已阅读以下内容:
https://github.com/node-red/node-red/wiki/Design%3A-Encryption-of-credentials
最后一句“请注意,一旦设置了credentialSecret,就无法更改其值。”也许是我的问题,但是肯定有一种方法可以更改数据库的登录凭据。
任何想法都会受到赞赏。
我现在发现node-red-contrib-postgres节点没有遇到与数据库的连接问题。 node-red-contrib-postgrestor节点必须存在一个特定的问题。