我尝试在 User_Roles 表中添加 roleId 和 userId,但创建后显示错误:
TypeError: Cannot read properties of undefined (reading 'create')
这是 UserRoles.js 的模块文件:
module.exports = (sequelize, DataTypes) => {
const UserRoles = sequelize.define("User_Roles");
return UserRoles;
}
这是 UserRoles.js 的路由器文件:
const express = require("express");
const router = express.Router();
const UserRoles = require("../models").UserRoles;
router.post("/", async (req, res) => {
const { RoleId, UserId } = req.body;
const usrRoles = await UserRoles.create({ RoleId: RoleId, UserId: UserId });
res.json(usrRoles);
});
module.exports = router;
在我有添加角色ID和用户ID的操作的页面上:
axios.post("http://localhost:3001/userRoles", { RoleId: parseInt(value, 10), UserId: selectedUserIdEdit }).then((response) => {
console.log('response', response);
})
console.log 显示:RoleId: 1,UserId: 1,这是正确的,但它没有存储它。
确保在 Sequelize 模型文件中正确定义并导出 UserRoles 模型。模型文件应如下所示:
module.exports = (sequelize, DataTypes) => {
const UserRoles = sequelize.define("UserRoles", {
RoleId: {
type: DataTypes.INTEGER,
allowNull: false,
},
UserId: {
type: DataTypes.INTEGER,
allowNull: false,
},
}, {
// Additional model options (optional)
tableName: 'User_Roles', // Specify table name if it's not automatically inferred
timestamps: false, // Disable timestamps if not needed
});
return UserRoles;
};
检查UserRoles模型是否在models/index.js文件中正确导入和导出,通常如下所示:
const { Sequelize, DataTypes } = require('sequelize');
const sequelize = new Sequelize(process.env.DATABASE_URL); // Adjust based on your config
const db = {};
db.UserRoles = require('./UserRoles')(sequelize, DataTypes);
// Import other models as needed
// db.OtherModel = require('./OtherModel')(sequelize, DataTypes);
db.sequelize = sequelize;
db.Sequelize = Sequelize;
module.exports = db;