Fala pessoal, preciso de uma força com o sequelize.
Estou usando como base o projeto do curso para um projeto do trabalho.
Criei uma nova tabela e alterei o tipo do banco para mssql. Porém, minha busca não retorna os dados do banco e não retorna nenhum erro também.
Eu não consegui identificar nada de errado no código, se puderem me dar uma segunda opinião, ficarei muito grato.
Uma coisa que fiquei em dúvida foi: Eu já tenho essa tabela criada no meu banco de dados, em tese eu não precisaria rodar o comando migrate, esse raciocínio está correto?
O meu código é esse:
Modelo:
"use strict";
module.exports = (sequelize, DataTypes) => {
const TOP_10 = sequelize.define(
"TOP_10",
{
BRICK: DataTypes.INTEGER,
SETOR_NEC_ABERTO: DataTypes.STRING,
EAN: DataTypes.STRING,
CEP_INICIAL: DataTypes.INTEGER,
CEP_FINAL: DataTypes.INTEGER,
PRODUTO: DataTypes.STRING,
LABORATORIO: DataTypes.STRING,
UNIDADES: DataTypes.FLOAT,
FCC: DataTypes.INTEGER,
RANK: DataTypes.INTEGER,
},
{
freezeTableName: true,
tableName: 'dbo.TOP_10',
}
);
TOP_10.associate = function (models) {
// associations can be defined here
};
return TOP_10;
};
Controller:
const database = require("../models");
database.sequelize.sync()
class Top10Controller {
static async getAllTop10(req, res) {
try {
const AllTop10 = await database.TOP_10.findAll();
return res.status(200).json(AllTop10);
} catch (error) {
return res.status(500).json(error.message);
}
}
static async getUniqueTop10(req, res) {
const { id } = req.params;
try {
const uniqueTop10 = await database.TOP_10.findOne({
where: { id: Number(id) },
});
return res.status(200).json(uniqueTop10);
} catch (error) {
return res.status(500).json(error.message);
}
}
}
module.exports = Top10Controller;
Aquivo de migration:
"use strict";
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable("dbo.TOP_10", {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER,
},
BRICK: {
type: Sequelize.INTEGER,
},
SETOR_NEC_ABERTO: {
type: Sequelize.STRING,
},
EAN: {
type: Sequelize.STRING,
},
CEP_INICIAL: {
type: Sequelize.INTEGER,
},
CEP_FINAL: {
type: Sequelize.INTEGER,
},
PRODUTO: {
type: Sequelize.STRING,
},
LABORATORIO: {
type: Sequelize.STRING,
},
UNIDADES: {
type: Sequelize.FLOAT,
},
FCC: {
type: Sequelize.INTEGER,
},
RANK: {
type: Sequelize.INTEGER,
},
createdAt: {
allowNull: false,
type: Sequelize.DATE,
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE,
},
});
},
down: (queryInterface, Sequelize) => {
return queryInterface.dropTable("dbo.TOP_10");
},
};
Rota:
const { Router } = require("express");
const Top10Controller = require("../controllers/Top10Controller");
const router = Router();
router.get("/top", Top10Controller.getAllTop10);
router.get("/top/:id", Top10Controller.getUniqueTop10);
module.exports = router;
Rota index:
const bodyParser = require("body-parser");
const top10Route = require("./top10Route");
module.exports = (app) => {
app.use(bodyParser.json());
app.use(top10Route);
};