Кроме того, я получаю следующую ошибку, когда требуется моя модель: < /p>
Код: Выделить всё
TypeError: Cannot read properties of undefined (reading 'define')
at Object. (B:\Builds\React-Express\nakargo\server\config\models\user.models.js:4:29)
at Module._compile (node:internal/modules/cjs/loader:1546:14)
at Object..js (node:internal/modules/cjs/loader:1689:10)
at Module.load (node:internal/modules/cjs/loader:1318:32)
at Function._load (node:internal/modules/cjs/loader:1128:12)
at TracingChannel.traceSync (node:diagnostics_channel:315:14)
at wrapModuleLoad (node:internal/modules/cjs/loader:218:24)
at Module.require (node:internal/modules/cjs/loader:1340:12)
at require (node:internal/modules/helpers:141:16)
at Object. (B:\Builds\React-Express\nakargo\server\config\db\dbConnection.js:24:19)
user.models.js file
Код: Выделить всё
const { Sequelize, DataTypes } = require("sequelize");
const { sequelize } = require("../db/dbConnection");
const userModel = sequelize.define(
"User",
{
id: {
type: DataTypes.UUID,
defaultValue: Sequelize.UUIDV4,
primaryKey: true,
},
name: {
type: DataTypes.STRING,
allowNull: false,
},
email: {
type: DataTypes.STRING,
allowNull: false,
unique: true,
validate: {
isEmail: true,
},
},
password: {
type: DataTypes.STRING,
allowNull: false,
},
},
{
tableName: "users", // ✅ Explicit table name
timestamps: true,
}
);
module.exports = userModel; // ✅ Ensure model is exported correctly
Код: Выделить всё
const { Sequelize } = require("sequelize");
const {
DATABASE_NAME,
DATABASE_USER,
DATABASE_PASSWORD,
DATABASE_HOST,
DATABASE_PORT,
} = require("../envExports");
const sequelize = new Sequelize(
DATABASE_NAME,
DATABASE_USER,
DATABASE_PASSWORD,
{
host: DATABASE_HOST,
port: DATABASE_PORT,
dialect: "mysql",
logging: console.log,
}
);
const userModel = require("../models/user.models");
// Function to test database connection
const initializeDB = async () => {
try {
await sequelize.authenticate();
console.log("✅ Database connection established successfully.");
await sequelize.sync({ alter: true });
console.log("✅ All models were synchronized successfully.");
} catch (error) {
console.error("❌ Failed to connect to the database:", error.message);
process.exit(1); // Exit on critical failure
}
};
// Function to clean up the connection
const disconnectDB = async () => {
try {
await sequelize.close();
console.log("✅ Database connection closed successfully.");
} catch (error) {
console.error(
"❌ Error while closing the database connection:",
error.message
);
}
};
module.exports = { sequelize, initializeDB, disconnectDB, userModel };
< /code>
[b] проблема: < /strong> < /p>
[list]
[*]sequelize.authenticate()
[*]
Код: Выделить всё
sequelize.sync({ alter: true })
Однако таблица пользователей не создается в MySQL. Запуск таблиц шоу ; В MySQL не перечисляется пользователей.
[*] Я также пытался продолжить Squelize.sync ({force: true}) , но таблица не создана.
< /ul>
Что я пробовал: < /strong> < /p>
[*] Убедился, что MySQL работает и связан.
[*] Проверенные журналы продолжения (журнал: console.log) –no появляется оператор создания таблицы. Каждое изменение.
[*] Вручную проверено MySQL с помощью таблицы SHOW; .
[*] Пробовал явно называть usermodel.sync ({force: true}) .
[/list]
Вопрос: [/b]
- Почему моя модель продолжительности не создает таблицу в MySQL, и как я могу исправить ошибку TypeError: не могу прочитать свойства неопределенных (чтение 'define') ошибка?
- Любой Понимание будет высоко ценится!
Подробнее здесь: https://stackoverflow.com/questions/794 ... t-read-pro