You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sequelize出现SyntaxError:标识符'sequelize'已重复声明

问题:Sequelize变量重复声明导致语法错误

我正在学习Sequelize并跟随课程操作,但遇到了老师未出现的错误(我认为代码与老师完全一致)。

代码(libs/sequelize.js)

const { sequelize } = require('sequelize');

const { config } = require('./../config/config');
const setupModels = require('./../db/models');


const USER = encodeURIComponent(config.dbUser);
const PASSWORD = encodeURIComponent(config.dbPassword);
const URI = `mysql://${USER}:${PASSWORD}@${config.dbHost}:${config.dbPort}/${config.dbName}`;


const sequelize = new Sequelize(URI, {
  dialect: 'mysql',
  logging: true,
});

setupModels(sequelize);



module.exports = sequelize;

终端报错信息

[nodemon] restarting due to changes... [nodemon] starting `node index.js`
C:\Users\DanielaStornelli\Programacion\proyectos\my-store-data\libs\sequelize.js:12
const sequelize = new Sequelize(URI, {
^

SyntaxError: Identifier 'sequelize' has already been declared
at Object.compileFunction (node:vm:360:18)
at wrapSafe (node:internal/modules/cjs/loader:1048:15)
at Module._compile (node:internal/modules/cjs/loader:1083:27)
at Module._extensions..js (node:internal/modules/cjs/loader:1173:10)
at Module.load (node:internal/modules/cjs/loader:997:32)
at Module._load (node:internal/modules/cjs/loader:838:12)
at Module.require (node:internal/modules/cjs/loader:1021:19)
at require (node:internal/modules/cjs/helpers:103:18)
at Object. (C:\Users\DanielaStornelli\Programacion\proyectos\my-store-data\services\product.service.js:5:19)
at Module._compile (node:internal/modules/cjs/loader:1119:14)

Node.js v18.8.0 [nodemon] app crashed - waiting for file changes
before starting...

解决方法

错误根源是变量重复声明:第一行从sequelize包中解构导入了sequelize变量,后续又用const sequelize重新声明同名变量,这在JavaScript中是不允许的。

需要修改第一行的导入语句——我们需要的是Sequelize的构造函数,而非它的默认实例,把第一行改成:

const Sequelize = require('sequelize');

修改后的完整代码:

const Sequelize = require('sequelize');

const { config } = require('./../config/config');
const setupModels = require('./../db/models');


const USER = encodeURIComponent(config.dbUser);
const PASSWORD = encodeURIComponent(config.dbPassword);
const URI = `mysql://${USER}:${PASSWORD}@${config.dbHost}:${config.dbPort}/${config.dbName}`;


const sequelize = new Sequelize(URI, {
  dialect: 'mysql',
  logging: true,
});

setupModels(sequelize);

module.exports = sequelize;

调整后即可解决变量重复声明问题,代码能正常运行。

内容的提问来源于stack exchange,提问作者danistor_m

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 04:46:29