项目说明:
利用 webpack 搭建全栈项目;
后端 nodejs;
前端 vue ;
后端框架 express ;
ORM框架 sequelize 。
问题:安装 sequelize 时同时安装上了 mysql2 , 但报错未安装,详情如下:
代码如下:
const { Sequelize } = require('sequelize');
const sequelize = new Sequelize('advdb', 'root', '123456', {
host: 'localhost',
dialect:'mysql' /* 选择 'mysql' | 'mariadb' | 'postgres' | 'mssql' 其一 */
});
module.exports = sequelize;
报错如下:
c:\Users\Administrator\Desktop\adv\dist\index.js:66856
throw new Error(`Please install ${moduleName} package manually`);
^
Error: Please install mysql2 package manually
at ConnectionManager._loadDialectModule (c:\Users\Administrator\Desktop\adv\dist\index.js:66856:15)
at new ConnectionManager (c:\Users\Administrator\Desktop\adv\dist\index.js:75089:21)
at new MysqlDialect (c:\Users\Administrator\Desktop\adv\dist\index.js:75396:30)
at new Sequelize (c:\Users\Administrator\Desktop\adv\dist\index.js:87916:20)
at Object../server/models/db.js (c:\Users\Administrator\Desktop\adv\dist\index.js:354:19)
at __webpack_require__ (c:\Users\Administrator\Desktop\adv\dist\index.js:20:30)
at Object../server/models/Admin.js (c:\Users\Administrator\Desktop\adv\dist\index.js:325:19)
at __webpack_require__ (c:\Users\Administrator\Desktop\adv\dist\index.js:20:30)
at Object../server/models/sync.js (c:\Users\Administrator\Desktop\adv\dist\index.js:399:1)
at __webpack_require__ (c:\Users\Administrator\Desktop\adv\dist\index.js:20:30)
[nodemon] app crashed - waiting for file changes before starting...
解决方法如下:
const { Sequelize } = require('sequelize');
const mysql2 =require('mysql2');
const options = {
host: 'localhost',
dialect:'mysql' /* 选择 'mysql' | 'mariadb' | 'postgres' | 'mssql' 其一 */
}
if (options.dialect === 'mysql') {
options.dialectModule = mysql2;
}
const sequelize = new Sequelize('advdb', 'root', '123456', options);
module.exports = sequelize;