连接 Node.js 到 Oracle 数据库时出现错误 ORA-12162

Error ORA-12162 when connecting Node.js to Oracle Database

我正在使用 nodejs(运行 在带有 RHEL linux 发行版的亚马逊 EC2 实例中)和 node-oracledb 尝试连接到外部 oracle 数据库。但是,每当我尝试建立连接时,我都会收到以下错误:

Error: ORA-12162: TNS:net service name is incorrectly specified

我已经能够使用 sqlplus(使用相同的连接字符串)、telnet 和 sqldeveloper 成功连接到数据库。

dbconfig.js

module.exports = {
    username: 'placeholder username',
    pw: 'placeholder pw',
    connectionString: 'host:post/SID',
}

database.js

function simpleExecute(statement, binds = [], opts = {}) {
    return new Promise(async (resolve, reject) => {
        let conn;

        opts.outFormat = oracledb.OBJECT;
        opts.autoCommit = true;

        try {
            conn = await oracledb.getConnection({
                user          : dbConfig.username,
                password      : dbConfig.pw,
                connectString : dbConfig.connectString
            });

            const result = await conn.execute(statement, binds, opts);

            resolve(result);
        } catch (err) {
            reject(err);
        } finally {
            if (conn) { // conn assignment worked, need to close
                try {
                    await conn.close();
                } catch (err) {
                    console.log(err);
                }
            }
        }
    });
}

testdb.js

query = 'USER_ID FROM placeholder table WHERE EMAIL=:usr_id';

binds.usr_id = 'placeholder email';

result = await database.simpleExecute(query, binds);

有人知道我为什么会收到此错误吗?我在网上找到的任何解决方案都没有帮助。

谢谢!

在您的配置模块中,您将其命名为 connectionString。但是在database.js中,你指的是connectString.