我可以在 Node.js 中使用“mysql”而不是“mysql2”来执行sequelize吗?

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

所以,我在我的项目中使用 mysql npm 包已经有一段时间了,我想在我的一个项目的某些部分使用 Sequelize。但是当我在方言中传递“mysql”作为值时,它抛出了错误。

这是错误:

抛出新错误(

Please install ${moduleName} package manually
);

错误:请手动安装mysql2包

这是我的续集代码:

const sequelize =  new Sequelize({
    dialect: "mysql",
    host: process.env.DB_HOST,
    username: process.env.DB_USER,
    password: process.env.DB_PASS,
    database: process.env.DB_DATABASE,
    port: process.env.DB_PORT
});

try {
  sequelize.authenticate();
  console.log('Connection has been established successfully.');
} catch (error) {
  console.error('Unable to connect to the database:', error);
}

sequelize.close();

所以我的第一个问题是我可以使用mysql,还是应该切换到mysql2? 或者,如果我要切换到 mysql2,将依赖项中的 mysql 替换为 mysql2 是否有效(无需更改任何内容,即 mysql 中的查询或方法)?

我的意思是:

const mysql = require("mysql");

const mysql = require("mysql2");

node.js npm sequelize.js mysql-connector mysql2
1个回答
0
投票

Sequelize 特别需要

mysql2
包作为其默认的 MySQL 方言引擎。因此,要使用 Sequelize,您不能使用
mysql
包; 您必须使用
mysql2

如果您从

mysql
切换到
mysql2
,它通常应该在大多数用例中无缝工作,因为
mysql2
旨在成为
mysql
的直接替代品。

因此,使用命令

mysql
卸载
npm uninstall mysql
,然后使用命令
mysql2
 安装 
npm i mysql2

我希望这能解决你的问题🤞

© www.soinside.com 2019 - 2024. All rights reserved.