解决方案
手动设置 dialectModule 的值为 mysql2。增加 dialectModule 配置即可。
import mysql2 from 'mysql2'
import { Sequelize } from 'sequelize'
const { DB_DATABASE, DB_USER, DB_PASSWORD, DB_HOST, DB_PORT, DB_LOGGING, DB_POLL_MAX, DB_POLL_MIN, DB_POLL_ACQUIRE, DB_POLL_IDLE, } = process.env
const sequelize = new Sequelize(DB_DATABASE, DB_USER, DB_PASSWORD, {
host: DB_HOST, // 主机
dialect: 'mysql', // 指定连接的数据库类型
port: +DB_PORT, // 端口
// 增加这个配置
dialectModule: mysql2,
})
问题原因
webpack 不支持动态导入导致的。sequelize 内部使用 require 动态导入 dialectModule 配置
源码: node_modules/.pnpm/sequelize@6.37.3_mysql2@3.11.3/node_modules/sequelize/lib/dialects/abstract/connection-manager.js

问题 issues
扩展
如果发现解决完之后还有链接数据库会有警告
Critical dependency: the request of a dependency is an expression
Import trace for requested module:
修改 nextjs配置 (next.config.mjs) 即可。
// 增加配置
const nextConfig = {
// 增加配置即可
experimental: {
serverComponentsExternalPackages: ['sequelize',],
},
}
问题issue











![[SAP ABAP] 数据元素添加参数ID(Parameter ID)](https://i-blog.csdnimg.cn/direct/8c8cf95ade974ddc83c7004b8d8a150b.png)







