当前位置: 首页 > article >正文

如何解决在 nextjs 中使用 sequelize 连接 mysql 报错:Please install mysql2 package manually

解决方案

手动设置 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


http://www.kler.cn/news/332766.html

相关文章:

  • 【Router】路由功能之IP过滤(IP Filter)功能(基于端口)介绍及实现
  • SqlAlchemy使用教程(七) 异步访问数据库
  • 数据结构编程实践20讲(Python版)—04队列
  • 基于SSM的家政服务系统【附源码】
  • 区块链可投会议CCF C--CT-RSA 2025 截止10.15 附2024录用率
  • osg 矩阵相关
  • springboot项目配置部分依赖从私服拉取,部分从阿里云拉取
  • docker安装kafka-manager
  • 物联网(二)——MDPI特刊推荐
  • 学习 CSS 新的属性 conic-gradient 实现环形进度条
  • lsblk和df列出的东西怎么不一样,df怎么看不了sdb
  • CUDA与TensorRT学习六:模型部署-CNN、模型部署-YOLOv8检测器、部署BEVFusion模型
  • 一天认识一个硬件之键盘
  • macos安装git并连接gitCode远程仓库
  • 使用C++的OpenSSL 库实现 AES 加密和解密文件
  • 【2022工业3D异常检测文献】BTF: 结合手工制作的3D描述和颜色特征的异常检测方法
  • 大数据实时数仓Hologres(四):基于Flink+Hologres搭建实时数仓
  • SpringBoot的数据访问
  • TCP Analysis Flags 之 TCP ZeroWindowProbe
  • 忘记 MySQL 密码怎么办:破解 root 账户密码