localhost:3000/class - GET
/models/class.js
'use strict';
const {
Model
} = require('sequelize');
module.exports = (sequelize, DataTypes) => {
class Class extends Model {
static associate(models) {
// define association here
Class.hasMany(models.Enrollment, { foreignKey: 'class_id' })
Class.belongsTo(models.Level)
Class.belongsTo(models.Person)
}
}
Class.init({
date: DataTypes.DATEONLY
}, {
sequelize,
modelName: 'Class',
});
return Class;
};
/controllers/ClassController.js
const database = require("../models/index.js")
module.exports = class Classes {
static async getClasses(req, res) {
try {
const allClasses = await database.Class.findAll()
return res.status(200).json({ data: allClasses })
} catch (err) {
return res.status(500).json({ data: err.message })
}
}
static async getClass(req, res) {
const { id } = req.params
try {
const oneClass = await database.Class.findOne({ where: { id: Number(id) } })
return res.status(200).json({ data: oneClass })
} catch (err) {
res.status(500).json({ data: err.message })
}
}
static async createClass(req, res) {
const info = req.body
try {
const newClass = await database.Class.create(info)
return res.status(201).json({ data: newClass })
} catch (err) {
res.status(500).json({ data: err.message })
}
}
static async updateClass(req, res) {
const { id } = req.params
const info = req.body
try {
await database.Class.update(info, { where: { id: Number(id) } })
const updatedClass = await database.Class.findOne({ where: { id: Number(id) } })
return res.status(200).json({ data: updatedClass })
} catch (err) {
return res.status(500).json({ data: err.message })
}
}
static async deleteClass(req, res) {
const { id } = req.params
try {
await database.Class.destroy({ where: { id: Number(id) } })
return res.status(200).json({ data: "Class Deleted!" })
} catch (err) {
return res.status(500).json({ data: err.message })
}
}
}
Os path's localhost:3000/person e localhost:3000/level, estou conseguindo realizar chamadas GET's, porém ao chamar alguma tabela que há FK's, é retornado este erro
localhost:3000/class -> "Unknown column 'LevelId' in 'field list'"
localhost:3000/enrollment -> "Unknown column 'ClassId' in 'field list'"
Query rodada pelo Sequelize:
Executing (default): SELECT `id`, `status`, `createdAt`, `updatedAt`, `class_id`, `ClassId`, `PersonId`, `student_id` FROM `Enrollments` AS `Enrollment`;