nodejs - 无法使用 sequelize 7 连接到 ibmi db2 实例

问题描述 投票:0回答:0

我已经在我的电子应用程序中成功安装了 sequelize 7。我需要连接到将在 ibm i 系统 AS400 上运行的 db2 数据库,但我在连接数据库时遇到了一些问题。我使用了以下代码

        const sequelize = new Sequelize('mydb', 'myuser', 'mypwd', {
            host: '192.168.0.15',
            // one of our supported dialects:
            // 'mysql', 'mariadb', 'postgres', 'mssql', 'sqlite', 'snowflake', 'db2' or 'ibmi'
            dialectModule: require('odbc'),
            dialect: 'ibmi' ,
            //dialectOptions: {
            //    odbcConnectionString: 'CMT=1;NAM=0;DATABASE=Iasp01;HOSTNAME=192.168.0.15;UID=myuser;PWD=mypwd;PORT=446'
            //}
        })

        console.log(sequelize)

        try {
            sequelize.authenticate()
                .then( () => {
                    console.log('Connection ok')
                }).catch( (e) => {  
                    //event.sender.send('databaseUpdateCompleted', JSON.stringify(e) )
                    console.log( util.inspect(e, { showHidden: true, depth: true, colors: true }) ) 
                    //console.dir( e )
                })
        } catch (error) {
            console.log(error)
        }

在控制台中,当我记录从 sequelize 返回的错误时,我会收到此消息,但我无法将对象扩展到错误中

  [message]: '[odbc] Error connecting to the database',
  [cause]: [Error: [odbc] Error connecting to the database] {
    [stack]: 'Error: [odbc] Error connecting to the database',
    [message]: '[odbc] Error connecting to the database',
    odbcErrors: [Array]
  },
  name: 'SequelizeConnectionRefusedError',
  [parent]: [Getter],
  [original]: [Getter]

查看 sequelize 对象,我发现使用的端口默认设置为 25000,但我们没有配置此端口。可能是这个问题的原因,我如何使用节点 odbc 和 sequalize 连接 db2?如果我尝试使用 MS Access 或其他工具(如 dbeaver)进行连接,一切都会正常进行。我怀疑我们公司使用的代理会阻止连接?

node.js electron db2 sequelize.js db2-400
© www.soinside.com 2019 - 2024. All rights reserved.