Ir para conteúdo
acneto.frc

Javascript+async-await+MVC

Recommended Posts

12 horas atrás, acneto.frc disse:

Dentro da Modelo tem um colsole.log para apresentar o retorno do await


try{
    retorno = await conexao.query(m_sql); 
    console.log("GetAll Sql retornando: ")
    console.log("\n"+retorno)
  }catch(error) {
    throw new Error(error);
}

  return retorno;

e mostra no console :

[object Object]
TypeError: Converting circular structure to JSON

 

Esse retorno eu não consigo manipular...

 

E no navegador retorna:

error: {}

resultado da instrução abaixo do controller

res.send(retorno)


 

 

O motivo e que você recebe um array"[]" o que tá sendo exibido ai e que você esta recebendo um array de objetos "[object Object]"

então, se você conhece conceitos de programação sabe que somente iterando vai conseguir visualizar os conteúdos neste ponto ficaria o JSON.stringify(retorno) deste moto teria o objeto completo.

 

para ver o objeto da primeira posição console.log(retorno[0])

Compartilhar este post


Link para o post
Compartilhar em outros sites
10 horas atrás, wanderval disse:

O motivo e que você recebe um array"[]" o que tá sendo exibido ai e que você esta recebendo um array de objetos "[object Object]"

então, se você conhece conceitos de programação sabe que somente iterando vai conseguir visualizar os conteúdos neste ponto ficaria o JSON.stringify(retorno) deste moto teria o objeto completo.

 

para ver o objeto da primeira posição console.log(retorno[0])

Bom dia!

Em algum momento já tentei mostrar o conteúdo com "retorn[0]" mas retorna indefinido.

Abaixo o retorno neste momento no console:

GetAll Sql retornando:

undefined
============== Retornando .... Seguros GetAll Controller!!! ====================
undefined

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
5 horas atrás, acneto.frc disse:

Bom dia!

Em algum momento já tentei mostrar o conteúdo com "retorn[0]" mas retorna indefinido.

Abaixo o retorno neste momento no console:

GetAll Sql retornando:

undefined
============== Retornando .... Seguros GetAll Controller!!! ====================
undefined

 

Olha seu foco deveria estar no model! pra descobrir o deu objeto que contem os dados do select do banco você precisa rever a lib que está usando pra acessar o banco dados, o que o arquivo conexão configura a configuração está correta? se está usando um lib de conexão no próprio site da lib tem a doc que mostra como isso deve ser feito. o fluxo funciona! mas sua dificuldade está no principal que é receber os dados nesse ponto você terá que focar nisso pq ai eu te pergunto pq você está se preocupando tanto com a modificação da estrutura se existe um problema em receber esses dados do banco?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
17 horas atrás, wanderval disse:

Olha seu foco deveria estar no model! pra descobrir o deu objeto que contem os dados do select do banco você precisa rever a lib que está usando pra acessar o banco dados, o que o arquivo conexão configura a configuração está correta? se está usando um lib de conexão no próprio site da lib tem a doc que mostra como isso deve ser feito. o fluxo funciona! mas sua dificuldade está no principal que é receber os dados nesse ponto você terá que focar nisso pq ai eu te pergunto pq você está se preocupando tanto com a modificação da estrutura se existe um problema em receber esses dados do banco?

 

Bom dia!

Me preocupo com a estrutura porque nessa mesma aplicação tenho diversos cadastros funcionando mas utilizando callback e em alguns programas que acessam diversas tabelas tenho callback hell, por isso estou focando na estrutura, então como outros programas realizam CRUD normalmente não penso que seja a LIB.

Mas se é possível haver problemas por onde começar???

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
13 horas atrás, acneto.frc disse:

Bom dia!

Me preocupo com a estrutura porque nessa mesma aplicação tenho diversos cadastros funcionando mas utilizando callback e em alguns programas que acessam diversas tabelas tenho callback hell, por isso estou focando na estrutura, então como outros programas realizam CRUD normalmente não penso que seja a LIB.

Mas se é possível haver problemas por onde começar???

 

 

não é um problema mas você precisa saber com que lib está trabalhando para a conexão com o banco, pelo seu relato já estava funcionando antes da sua alteração essa parte não mudou a parte de manipular o dado que vem do banco será da mesma forma, então apenas faça da mesmo forma já que realizou a alteração da estrutura somente reveja o código anterior que manipula a resposta do comando query assim sua alteração funcionará sem problema

Compartilhar este post


Link para o post
Compartilhar em outros sites
20 horas atrás, wanderval disse:

 

não é um problema mas você precisa saber com que lib está trabalhando para a conexão com o banco, pelo seu relato já estava funcionando antes da sua alteração essa parte não mudou a parte de manipular o dado que vem do banco será da mesma forma, então apenas faça da mesmo forma já que realizou a alteração da estrutura somente reveja o código anterior que manipula a resposta do comando query assim sua alteração funcionará sem problema

se for voltar a model como antes terei que modificar a chamada no controller

function segurosCadastro(req, res){
    segurosController.getAll(function (err, result){
        console.log("Retorno de Seguros>... "+result[0]);
        var id = result[0].sal_codigo;

e a model fica ficaria assim (usando callback)

function getAll (callback) {
  m_sql = 'select * from seguros ';      

  conexao.query(m_sql, callback);      

}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
22 horas atrás, acneto.frc disse:

se for voltar a model como antes terei que modificar a chamada no controller


function segurosCadastro(req, res){
    segurosController.getAll(function (err, result){
        console.log("Retorno de Seguros>... "+result[0]);
        var id = result[0].sal_codigo;

e a model fica ficaria assim (usando callback)


function getAll (callback) {
  m_sql = 'select * from seguros ';      

  conexao.query(m_sql, callback);      

}

 

 

Cara você tem que prestar mais atenção na descrição em nenhum momento eu disse para voltar o código  do model disse que a forma de manipular a query do banco de dados não mudou e você acabou de comprovar isso!

 

function getAll (callback) {
  m_sql = 'select * from seguros ';      

  conexao.query(m_sql, callback);      
}

seu método "query" usa callback, em nenhum momento você colocou algum código sobre ele:

1: se precisar mudar esse código fará uma determinada alteração caso contrario mantera o callback e terá outra abordagem

2: Eu avisei você que deveria se preocupar com a manipulação dos dados mas você está tão vidrado em querer fazer funcionar que não esta querendo entender o que está acontecendo, se não exercitar isso vai programar na tentativa e erro.

 

mantendo o callback:

https://codesandbox.io/s/zealous-brahmagupta-mqhxd?file=/src/config/conexao.js

Compartilhar este post


Link para o post
Compartilhar em outros sites
23 horas atrás, wanderval disse:

 

Cara você tem que prestar mais atenção na descrição em nenhum momento eu disse para voltar o código  do model disse que a forma de manipular a query do banco de dados não mudou e você acabou de comprovar isso!

 


function getAll (callback) {
  m_sql = 'select * from seguros ';      

  conexao.query(m_sql, callback);      
}

seu método "query" usa callback, em nenhum momento você colocou algum código sobre ele:

1: se precisar mudar esse código fará uma determinada alteração caso contrario mantera o callback e terá outra abordagem

2: Eu avisei você que deveria se preocupar com a manipulação dos dados mas você está tão vidrado em querer fazer funcionar que não esta querendo entender o que está acontecendo, se não exercitar isso vai programar na tentativa e erro.

 

mantendo o callback:

https://codesandbox.io/s/zealous-brahmagupta-mqhxd?file=/src/config/conexao.js

 

Nunca comemorei tanto tomar uma dura.....

Faltava retornar a Promise. Mas vou seguir com os estudos.

Grato! Mas certo de que virão muitas outras dúvidas depois dessa.

Abraços!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Agora, acneto.frc disse:

 

Nunca comemorei tanto tomar uma dura.....

Faltava retornar a Promise. Mas vou seguir com os estudos.

Grato! Mas certo de que virão muitas outras dúvidas depois dessa.

Abraços!

 

 

kkk que bom que entendeu que é uma critica construtiva!

Dúvida é algo que não acaba sempre havera dúvidas, o importante é se aprimorar.

Faz aquele curso ai você vai ver como as coisas ficam mais simples.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 18/11/2020 at 19:58, wanderval disse:

 

kkk que bom que entendeu que é uma critica construtiva!

Dúvida é algo que não acaba sempre haverá dúvidas, o importante é se aprimorar.

Faz aquele curso ai você vai ver como as coisas ficam mais simples.

Claro que considero sim critica construtiva...obrigado

E dúvidas sempre existirão ...verdade nunca acabam....

Já estou vendo aqui porque preciso abrir outra tabela...fazer outra chamada e o programa está reclamando..

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 18/11/2020 at 19:58, wanderval disse:

 

kkk que bom que entendeu que é uma critica construtiva!

Dúvida é algo que não acaba sempre havera dúvidas, o importante é se aprimorar.

Faz aquele curso ai você vai ver como as coisas ficam mais simples.

Na verdade está caindo no rejeitado reject(error), mas está apresentando o conteúdo da consulta em formato Json

Compartilhar este post


Link para o post
Compartilhar em outros sites
12 horas atrás, acneto.frc disse:

Na verdade está caindo no rejeitado reject(error), mas está apresentando o conteúdo da consulta em formato Json

Vou frisar mais uma vez, coloque código nas suas dúvidas, se perde muito tempo, pq se não fizer o mínimo que é deixar clara sua dúvida, tb é desanimador para quem ler sua dúvida.

 

1-Mas agora eu te pergunto você analisou o script de conexão pra saber como o callback esta manipulando o resultado e o erro ou apenas copiou e colou?

 

seu problema parece ser muito simples, analise a ordem dos parâmetros, e no momento que o callback e setado no file conexão talvez a ordem esteja apenas invertida, isso explicaria estar sendo retornado o json. então bastaria trocar as posições dos parâmetros da function no model

Compartilhar este post


Link para o post
Compartilhar em outros sites
12 horas atrás, wanderval disse:

Vou frisar mais uma vez, coloque código nas suas dúvidas, se perde muito tempo, pq se não fizer o mínimo que é deixar clara sua dúvida, tb é desanimador para quem ler sua dúvida.

 

1-Mas agora eu te pergunto você analisou o script de conexão pra saber como o callback esta manipulando o resultado e o erro ou apenas copiou e colou?

 

seu problema parece ser muito simples, analise a ordem dos parâmetros, e no momento que o callback e setado no file conexão talvez a ordem esteja apenas invertida, isso explicaria estar sendo retornado o json. então bastaria trocar as posições dos parâmetros da function no model

Meu script de conexão é apenas para setar os parâmetros da conexão.

/*
/     configurações de acesso ao banco de dados
*/
var mysql = require('mysql');

var client = mysql.createConnection({
    user: 'root',
    password: 'toor',
    host: 'localhost',
    port: 3306,
    database: 'estagio'
});
    
client.query('USE ' + database);

module.exports = client;

falta uma linha abaixo:

var mysql = require('mysql');
var database = 'estagio';

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
12 horas atrás, wanderval disse:

Vou frisar mais uma vez, coloque código nas suas dúvidas, se perde muito tempo, pq se não fizer o mínimo que é deixar clara sua dúvida, tb é desanimador para quem ler sua dúvida.

 

1-Mas agora eu te pergunto você analisou o script de conexão pra saber como o callback esta manipulando o resultado e o erro ou apenas copiou e colou?

 

seu problema parece ser muito simples, analise a ordem dos parâmetros, e no momento que o callback e setado no file conexão talvez a ordem esteja apenas invertida, isso explicaria estar sendo retornado o json. então bastaria trocar as posições dos parâmetros da function no model

sobre este parágrafo:

seu problema parece ser muito simples, analise a ordem dos parâmetros, e no momento que o callback e setado no file conexão talvez a ordem esteja apenas invertida, isso explicaria estar sendo retornado o json. então bastaria trocar as posições dos parâmetros da function no model

Eu não tenho nada no file de conexão apenas os parâmetros de conexão com o banco

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

A model está como originalmente você postou.

async function getAllCallback() {
  console.log('========== Seguros Get All Model =============')
  const m_sql = 'select A.*, B.seg_razaosocial, B.seg_nomefantasia, C.alu_nome, D.usu_username from seguros A left join seguradora B on A.seg_codigo = B.seg_codigo left join usuarios D on A.usu_codigo = D.usu_codigo left join alunos C on A.alu_codigo = C.alu_codigo ';

  console.log("SQL em Model...."+'\n'+m_sql);
  console.log("\n")

  return new Promise((resolve, reject) => {
    client.query(m_sql, function (response, error ) {
      console.log('Response: '+response);
      if (error) {
        reject(error);
        console.log("\n Promise Rejeitada....")
 
      } else {
//        resolve('Ok!');
        resolve(response);
        console.log("\n Promise Resolvida....") 
      }
    });
  });
}

response retorna null

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, acneto.frc disse:

sobre este parágrafo:

seu problema parece ser muito simples, analise a ordem dos parâmetros, e no momento que o callback e setado no file conexão talvez a ordem esteja apenas invertida, isso explicaria estar sendo retornado o json. então bastaria trocar as posições dos parâmetros da function no model

Eu não tenho nada no file de conexão apenas os parâmetros de conexão com o banco

 

PROBLEMA RESOLVIDO! RETORNANDO RESOLVE.

Troquei os parâmetros:

  return new Promise((resolve, reject) => {
    client.query(m_sql, function (error, response ) {
      if (error) {
        reject(error);
        console.log("\n Promise Rejeitada....")
 
      } else {
        resolve(response);
        console.log("\n Promise Resolvida....") 
      }
    });
  });

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 25/11/2020 at 23:17, wanderval disse:

Isso ai parabéns!

 

uma dica! quando surgir duvida sobre a lib, você pode pesquisar no npmjs muitas libs tem exemplo

 

ex: require('mysql')

https://www.npmjs.com/package/mysql

Verifiquei no link....tem muita coisa bacana pra poder implementar..

Obrigado!

O que me diz sobre eu usar Classes neste meu projeto.

Já trabalhei um pouco com Java POO nada muito profundo mas entendo sobre private, public.

Tem alguma sugestão de bom material...vídeo aula, tutoriais, etc?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
17 minutos atrás, acneto.frc disse:

Verifiquei no link....tem muita coisa bacana pra poder implementar..

Obrigado!

O que me diz sobre eu usar Classes neste meu projeto.

Já trabalhei um pouco com Java POO nada muito profundo mas entendo sobre private, public.

Tem alguma sugestão de bom material...vídeo aula, tutoriais, etc?

 

Bom no caso do back-end, muitos realmente utilizam padrões de orientação de objeto, por existir muitos padrões já consolidado como SOLID, MVC, então não vejo problema, mas é bom ver um daqueles cursos pra pegar a dinâmica da linguagem, alguns cursos usam o typescript que aproxima ainda mais dos conceitos de linguagem typadas como Java. Mas quando falo de usar as classes nem tudo é usado com esse conceito mas modelos são mais comuns inclusive com integração com banco de dados como ORM.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Wanderval!

Feliz Ano Novo a você e familiares. Que tenhamos um ano de saúde, vacina, felicidades e muito estudo.

Por falar em estudo gostaria de uma sugestão para prosseguir com meus estudos.

Conclui o curso que me recomendou:

- APIs com Nodejs, Express + MongoDB, SQL

- APIs com Nodejs + Express + Mongodb

Os dois são fortes em Back-End e foi muito bom, agora gostaria de aplicar estes conhecimentos em Front-End React.

Você saberia me indicar alguns cursos da Udemy para eu continuar os estudos.

Abraços e obrigado!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Jafreal
      Bom dia a todos
       
      Criei um programa em MVC, que utiliza duas tabelas customizadas. Tipo Pai e Filho. Similar as tabelas SC5 e SC6. Estou usando FWMBrowse, por isso utilizei a relação abaixo no Static Function ModelDef.
       
      Local oModel         := Nil
      Local oStPai         := FWFormStruct(1, 'SZD')
      Local oStFilho         := FWFormStruct(1, 'SZE')
      Local aSZERel        := {}
       
      oModel := MPFormModel():New('zMVCMd3M')
      oModel:AddFields('SZDMASTER',,oStPai)
      oModel:AddGrid('SZEDETAIL','SZDMASTER',oStFilho,,,,,)  
       
      aAdd(aSZERel, {'ZE_FILIAL' ,'ZD_FILIAL' } )
      aAdd(aSZERel, {'ZE_EDITAL' ,'ZD_EDITAL' } ) 
       
      oModel:SetRelation('SZEDETAIL', aSZERel, SZE->(IndexKey(1))) 
      oModel:GetModel('SZEDETAIL'):SetUniqueLine({"ZE_FILIAL","ZE_EDITAL","ZE_CODPROD"})     
      oModel:SetPrimaryKey({})
       
      Return oModel
       
      O problema é que na hora da gravação na tabela filho ele não grava o campo filial(ZE_FILIAL), mas grava o campo edital(ZE_EDITAL). Alguem já passou por isso?
       
    • Por Sapinn
      Pessoal estou com um dúvida terrivel não consigo checar os paramentros passados pela url ele sempre pagar anterior o que fazer? 
      Vejam o codigo:: 
        <?php     class Rota     {         private $controlador = 'Paginas';         private $metodo = 'index';         private $parametros = [];         public function __construct()         {             $url = $this->url() ? $this->url() : [0];             if (file_exists('../app/Controllers/' . ucwords($url[0] . 'php'))) {                 $this->controlador = ucwords($url[0]);                 unset($url[0]);             }             require_once '../app/Controllers/' . $this->controlador . '.php';             $this->controlador = new $this->controlador;             if (isset($url[1])) {                 if (method_exists($this->controlador, $url[1])) {                     $this->metodo = $url[1];                     unset($url[1]);                 }             }             $this->parametros = $url ? array_values($url) : [];             call_user_func_array([$this->controlador, $this->metodo], $this->parametros);             var_dump($this);         }         private function url()         {             $url = filter_input(INPUT_GET, 'url', FILTER_SANITIZE_URL);             if (isset($url)) {                 $url = trim(rtrim($url, '/'));                 $url = explode('/', $url);                 return $url;             }         }     } Minha class Paginas:
      <?php class Paginas{              public function sobre($id){             echo $id."<hr>";         }     } O debug está me retornando:
       
      paginas
      _________________________________________________________________________________________________________________________________________________________________________________________
      object(Rota)#1 (3) { ["controlador":"Rota":private]=> object(Paginas)#2 (0) { } ["metodo":"Rota":private]=> string(5) "sobre" ["parametros":"Rota":private]=> array(1) { [0]=> string(7) "paginas" } }

      url usada: http://localhost/minha_pagina/paginas/sobre

      Ele não deveria gerar um erro e pedir para que eu passasse mais um paramentro na url? Ao invés disso ele só me retorna o método paginas o que fazer?
    • Por acneto.frc
      Tenho uma aplicação WEB NodeJs+Javascript. Na minha view (FILTROS PARA RELATÓRIO) além dos inputs tenho um radio button onde seleciono o tipo de do relatório que será gerado. No meu Controller tenho acesso aos campos inputs (type=text) normalmente mas não tenho acesso aos inputs (type=radio). Abaixo vou colocar parte do código.
       
      <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- As 3 meta tags acima *devem* vir em primeiro lugar dentro do `head`; qualquer outro conteúdo deve vir *após* essas tags --> <title><%= title %></title> <link rel="stylesheet" type="text/css" media="screen" href="/estilos/estilos.css" /> </head> <body> <header> <nav class="menuBase"> <ul> <li><a href="/">Início</a></li> <li><a href="/estagio/relatorios">Voltar</a></li> <li><a href=""> </a></li> </ul> </nav> </header> <main class=frmRelFiltros> <ul class="nav nav-tabs"> <li class="active" id="home-tab"><a data-toggle="tab" href="#pagina1">Relatório de Contratos</a></li> </ul> <div class="tab-content"> <div id="pagina1" class="tab-pane fade in active"> <form action='/contratos/relatorios/RelContratosPrint' method="post" id="relAlunos"> <!-- primeira linha --> <br> <div class="filtros" style="margin:15px"> <div class="row"> <div class="form-group col-md-6 col-md-offset-0"> <label>Código Contrato.:</label> <input type="text" name="cod_ini" value="0"/> A <input type="text" name="cod_fim" value="999999" /> <br> <br> <label>Ativo/Inativo...:</label> <input type="text" name="atv_ini" value="A"/> A <input type="text" name="atv_fim" value="Z" /> <br> <br> <label>Data Cadastro...:</label> <input type="text" name="cad_ini" value="01/01/2000"/> A <input type="text" name="cad_fim" value="31/12/2090" /> <br> <br> <label>Data Vigência...:</label> <input type="text" name="vig_ini" value="01/01/2000"/> A <input type="text" name="vig_fim" value="31/12/2090" /> <br> <br> <label>Sit. Contrato...:</label> <input type="text" name="sit_ini" value="0"/> A <input type="text" name="sit_fim" value="99" /> <br> <br> <label>Código do Curso.:</label> <input type="text" name="cur_ini" value="1"/> A <input type="text" name="cur_fim" value="99" /> <br> <br> </div> <div class="form-group col-md-6 col-md-offset-0"> <label>Código da Empresa.:</label> <input type="text" name="emp_ini" value="1"/> A <input type="text" name="emp_fim" value="9999" /> <br> <br> <label>Centro Integração.:</label> <input type="text" name="cie_ini" value="1"/> A <input type="text" name="cie_fim" value="999"/> <br> <br> <label>Valor da Bolsa....:</label> <input type="text" name="vlr_ini" value="1"/> A <input type="text" name="vlr_fim" value="99999999"/> <br> <br> <br> <div id="opcoesRelContratos" > <p>Selecione o Tipo do Relatório:</p> <input type="radio" id="tipoRel" name="padrao" value="padrao" checked=true> <label for="padrao">Padrao-Conferência</label><br> <input type="radio" id="tipoRel" name="faixa" value="faixa"> <label for="faixa">Faixa Salarial-Estatístico</label><br> <input type="radio" id="tipoRel" name="alunos_empresas" value="alunos_empresas"> <label for="alunos_empresas">Identificação de Alunos por Empresa</label> <br> <input type="radio" id="tipoRel" name="entregas" value="entregas"> <label for="entregas">Pastas de Estágios Entregues</label><br> <input type="radio" id="tipoRel" name="contratos_vencer" value="contratos_vencer"> <label for="contratos_vencer">Contratos a Vencer 30 dias</label> <br> </div> </div> </div> </div> <br> <!-- botões de acão --> <div class="btn-acao" style="margin-bottom: 0px;"> <div class="row"> <div class="col-md-2 col-md-offset-1"> <button id="btn-executarRel" type="submit" class="btn btn-primary btn-block" >Executar </button> </div> <div class="col-md-2 col-md-offset-1"> <button type="button" id="btn-cancelarRel" class="btn btn-primary btn-block">Voltar</button> </div> </div> </div> <br> </form> </div> <!-- tab pagina 1 --> </div> </main> <!-- JavaScript (Opcional) --> <!-- jQuery primeiro, depois Popper.js, depois Bootstrap JS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> <script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script> <script type="text/javascript" src="/js/funcoesCliente.js"></script> <script type="text/javascript" src="/js/script.js"></script> </body> </html>  
       
      Agora o código do routes e controllers. No controllers preciso acessar um elemento radio da view
      *** botão para submeter a view <button id="btn-executarRel" type="submit" class="btn btn-primary btn-block" >Executar </button> *** rota a ser executada ao sonfirmar a execução do relatório <form action='/contratos/relatorios/RelContratosPrint' method="post" id="relAlunos"> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ arquivo: contratosRoutes.js var contratosControllers = require('../controllers/contratosControllers.js'); module.exports = (app) => { app.get('/contratos/relatorios/relContratos', contratosControllers.contratosRel); app.post('/contratos/relatorios/RelContratosPrint', contratosControllers.printContratosRel); } +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ arquivo: contratosControllers.js const alunosController = require('../models/contratosModels.js'); const cnf_ambiente = require('../../config/config.js'); const moment = require('moment'); module.exports = { printContratosRel, } function printContratosRel(req, res){ console.log("Data Inicial Normal: "+req.body.cad_ini) console.log("Data Final Normal..: "+req.body.cad_fim) console.log("++++++++++++++++++++ DATA NO FORMATO DE ENTRADA APÓS O POST ++########################") // ++++++++++++ BAIXO O ERRO document is not defined var radios = document.getElementsById("tipoRel"); for (var i = 0; i < radios.length; i++) { if (radios[i].checked) { console.log("Escolhido: " + radios[i].value); } } cod_i = req.body.cod_ini; cod_f = req.body.cod_fim; atv_i = req.body.atv_ini; atv_f = req.body.atv_fim; cad_i = req.body.cad_ini; cad_f = req.body.cad_fim; vig_i = req.body.vig_ini; vig_f = req.body.vig_fim; sit_i = req.body.sit_ini; sit_f = req.body.sit_fim; cur_i = req.body.cur_ini; cur_f = req.body.cur_fim; emp_i = req.body.emp_ini; emp_f = req.body.emp_fim; cie_i = req.body.cie_ini; cie_f = req.body.cie_fim; vlr_i = req.body.vlr_ini; vlr_f = req.body.vlr_fim; console.log("Relatório >>>>>>>>>>>>>>>>>>>>>>>> "+cad_i + ' - '+ cad_f); alunosController.buscarPrintContratosRel( cod_i, cod_f, vlr_i, vlr_f, sit_i, sit_f, cur_i, cur_f, emp_i, emp_f, cad_i, cad_f, vig_i, vig_f, atv_i, atv_f, cie_i, cie_f, function(err, result){ if(result){ console.log("Encontrei registro de contratos.... Vou tratar das datas.."); for(var i = 0; i < result.length; i++ ){ result[i].cea_dtcadastro = moment(result[i].cea_dtcadastro).format("DD/MM/YYYY"); result[i].cea_dtalteracao = moment(result[i].cea_dtalteracao).format("DD/MM/YYYY"); result[i].cea_vigenciainicial = moment(result[i].cea_vigenciainicial).format("DD/MM/YYYY"); result[i].cea_vigenciafinal = moment(result[i].cea_vigenciafinal).format("DD/MM/YYYY"); } } if (err) { throw err; } else{ res.render('estagios/relatorios/frm_relContratosPrint.ejs', {title: 'Contratos', nomeUsuario: global.nomeUsuario, codigoUsuario: global.codigoUsuario, nomeFormulario: req.originalUrl, obj_contratos: result, }); } }); }  
    • Por Caio Henrique Bottigelli
      Olá, estou desenvolvendo um sistema em asp.net Framework MVC, usando o banco de dados Postgresql. Quando 2 usuários diferentes usam o sistema acontece conflito de informações, por exemplo, no cadastro de clientes, preciso vincular uma pessoa a um determinado cliente, caso 2 usuários estiverem usando, e os 2 fizerem essa ação de vincular pessoas a um cliente, no 2º usuário vai aparecer a pessoa que o 1º usuário vinculou. É como se o sistema estivesse usando uma única Lista e os 2 usuários estivessem compartilhando essa lista.
      As variáveis de conexão não estão estáticas, toda vez que alguém entrar no sistema, vai ser criado uma nova instancia de conexão.
      Alguém sabe como resolver esse conflito de informação entre usuários?
    • Por sergiosfpereira
      Boa tarde a todos,
       
      Estou estudando MVC e me deparei com a seguinte situação:

      Tenho uma View que precisa receber dados de dois Models diferentes, então no controller desta View eu tenho a função abaixo:
      public function teste($id) { $this->view->a = $this->getOneA($id); $this->loadModel('b'); $this->view->b = $this->model->getOneB($id); $this->view->render('app/teste'); } O cenário acima me retorna o esperado, pega os dados de A e de B e os deixa disponiveis para a View.
       
      Está correto utilizar esse método ?
       
      Se sim, eu deveria carregar o Model "b" no __construct do controller "a"  ou diretamente na função do controller "a" como neste exemplo?
       
      Se não, qual a melhor maneira de obter dados de diferentes Models?
       
      OBS: todos os controllers são filhos do controller principal e todos os models são filhos do model principal.
       
      E me perdoem se eu estiver falando bobagem, como disse, estou aprendendo e a finalidade aqui é didatica e agradeço a quem puder contribuir.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.