Jovem Developer Posted October 2, 2021 at 11:35 AM Report Share #623999 Posted October 2, 2021 at 11:35 AM Bom dia. Estou a fazer uma API nodejs usando o Express, Sequelize e Microsoft SQLServer. Como estou a começar a aprender sobre os modelos do Sequelize, estou a tentar inserir dados na minha base de dados através de um model sem query. Estou a usar isso numa rota express para fazer a inserção com o sequelize. const { Sequelize } = require('sequelize'); const PrintCard_Perfis = new Sequelize('mssql://sa:123456@localhost/PrintCard_Perfis') const db_cliente = new Sequelize('mssql://sa:123456@localhost/sakila') const express = require('express'); const bodyParser = require('body-parser'); const cors = require('cors'); var app = express(); var router = express.Router(); app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); app.use(cors({origin:"*",})); app.use('/api', router); app.use(function(req,res,next){ res.header("Access-Control-Allow-Origin","*"); res.header("Access-Control-Allow-Methods","GET,HEAD,POST,PUT,OPTIONS"); res.header("Access-Control-Allow-Headers","Origin,X-Requested-With,contentType,Content-Type,Accept,Authorization"); next(); }); var port = process.env.PORT || 8080; app.listen(port); router.use((request,response,next)=>{ console.log('middleware'); next(); }) router.route('/test').post((request, response)=> { const users = PrintCard_Perfis.define('Perfis', { id_utilizador: { primaryKey: true, type: Sequelize.INTEGER, }, nome_utilizador: Sequelize.STRING, password_utilizador: Sequelize.STRING }); return users.create({ id_utilizador: request.body.id_utilizador, nome_utilizador: request.body.nome_utilizador, password_utilizador: request.body.password_utilizador, }).then(function (users) { if (users) { response.send(users); } else { response.status(400).send('Error in insert new record'); } }); }); Este é o meu código. Já o testei usando o Postman e reparei que na minha consola, a api está a enviar a seguinte query : Executing (default): INSERT INTO [Perfis] ([id_utilizador],[nome_utilizador],[password_utilizador],[createdAt],[updatedAt]) OUTPUT INSERTED.[id_utilizador],INSERTED.[nome_utilizador],INSERTED.[password_utilizador],INSERTED.[createdAt],INSERTED.[updatedAt] VALUES (@0,@1,@2,@3,@4); No postman tenho esta rota a ser enviada como um post e este body a ser enviado : Rota : http://localhost:8080/api/test Body : {"id_utilizador" : 123,"nome_utilizador" : "sequelize","password_utilizador" : "pass"} A razão pela qual, o meu body não está a ser enviado é porque a query que é enviada contém 5 campos, e na tabela "Perfis" apenas tenho 3, logo dá erro. Gostaria de saber o que posso mudar no código, de modo ao sequelize enviar a query corretamente só com os campos que estão nesse body. Obrigado pela ajuda 🙂 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now