我已经在我的电子应用程序中成功安装了 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)进行连接,一切都会正常进行。我怀疑我们公司使用的代理会阻止连接?