Jovem Developer Posted October 12, 2021 at 08:59 AM Report Share #624079 Posted October 12, 2021 at 08:59 AM Bom dia. Estou a fazer uma api em nodejs usando sequelize para poder usar diferentes bases de dados. O problema surge quando no front-end faço uma requisição via "fetch", que é um post que envia este body para o servidor : { "connectionString" : "mssql://sa:123456@localhost/sakila", "table" : "film", "nrlinhas" : "60"} Aqui estou a enviar uma string de conexão para poder conectar-me a uma base de dados e obter as primeiras 60 linhas da tabela "film" dessa base de dados. O meu código da rota do servidor, é este : const { Sequelize } = require('sequelize'); const db_cliente = new Sequelize('mssql://sa:123456@localhost/sakila') const dboperations = require('./Operacoes'); 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 || 8090; app.listen(port); router.use((request,response,next)=>{ console.log('middleware'); next(); }) router.route('/getTable').post((request, response)=>{ let query = {...request.body}; dboperations.getTable(request,query) .then(result => {response.json(result);} ) }) Este é o código da função "getTable(request,query)" : async function getTable(request,query){ try{ var connectionString = request.body.connectionString; var table = request.body.table; var nrlinhas = request.body.nrlinhas; var s = new Sequelize(connectionString); query = "SELECT "+"TOP("+nrlinhas+") * "+" FROM "+ table; return new Sequelize(connectionString).query(query, {type: new Sequelize(connectionString).QueryTypes.SELECT}); } catch(error){ console.log(error); } } Quando faço a requisição, o terminal dá o seguinte erro : TypeError: Cannot read property 'replace' of null at new Sequelize (C:\Users\franc\Ambiente de Trabalho\tentativacamada\Backend\node_modules\sequelize\lib\sequelize.js:187:43) at Object.getTable (C:\Users\franc\Ambiente de Trabalho\tentativacamada\Backend\Operacoes.js:206:18) at C:\Users\franc\Ambiente de Trabalho\tentativacamada\Backend\index.js:80:16 at Layer.handle [as handle_request] (C:\Users\franc\Ambiente de Trabalho\tentativacamada\Backend\node_modules\express\lib\router\layer.js:95:5) at next (C:\Users\franc\Ambiente de Trabalho\tentativacamada\Backend\node_modules\express\lib\router\route.js:137:13) at Route.dispatch (C:\Users\franc\Ambiente de Trabalho\tentativacamada\Backend\node_modules\express\lib\router\route.js:112:3) at Layer.handle [as handle_request] (C:\Users\franc\Ambiente de Trabalho\tentativacamada\Backend\node_modules\express\lib\router\layer.js:95:5) at C:\Users\franc\Ambiente de Trabalho\tentativacamada\Backend\node_modules\express\lib\router\index.js:281:22 at Function.process_params (C:\Users\franc\Ambiente de Trabalho\tentativacamada\Backend\node_modules\express\lib\router\index.js:335:12) at next (C:\Users\franc\Ambiente de Trabalho\tentativacamada\Backend\node_modules\express\lib\router\index.js:275:10) Já testei esta requisição com o Postman e ele retorna-me sempre bem a tabela. Alguém me poderia ajudar a identificar e a resolver este problema, por favor? Obrigado. aaaaaaaa Link to comment Share on other sites More sharing options...
Jovem Developer Posted October 12, 2021 at 09:22 AM Author Report Share #624081 Posted October 12, 2021 at 09:22 AM Outra coisa importante : Já cheguei a copiar o código para fazer a requisição no Postman, fiz umas pequenas alterações, e colei na consola do browser e a consola retornou-me também os dados corretamente. Eu queria mesmo era que ele me devolvesse os dados com o body definido para aquilo que eu queira no front-end. aaaaaaaa 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