Jump to content

Question

Preciso que em todas as rotas sejam carregadas algumas variáveis que irei usar para manipulação no ejs, algumas delas sao padrao por todo o site, estou atualmente passando um arquivo json apos o render, porem como sao variáveis padrão, gostaria de torna-las globais no sistema ou alguma outra soluçao para nao ter que ficar passando um json em todas as rotas, o site tera mais de 300 rotas, ficara pessimo para manutenção, aonde esta com o comentario per page sera variavel de rota para rota, o de contact para baixo e algo generico para todas as rotas.

 

// PORQUE-SER-MACOM
app.get("/porque-ser-macom",function(req, res) {
    res.render('base-site/porque-ser-macom', {
        //Per page
        title :'Por que ser Maçom?',
        nomeEmpresa :'Instituto de Iniciação e Inclução Maçonica',
        description : 'O postulante ao ingresso nos quadros da Ordem Maçônica, deve autoavaliar-se em busca de valores, costumes, atitudes (interiores), e  comportamentos sociais exteriorizados cotejando-os com algumas premissas...',
        keywords : 'maconaria macom ordem sociedade fraternal integrante organizacao misteriosa sigilosa praticas segredos ritos tradicoes especulacoes reunioes cumprimento palavras socorro senha cerimonia companheiros apuros poderosos monarcas mil milhoes mundo ffinancas politica mobilizar governo controlar Winston Churchill personagens ilustres corrupcao perjurio juramento testemunhar contra violar falso processo judicial trair simbolo dolar nota triangulo olho ve novus ordo seclorum lema Benjamin Franklin design comite coincidencia iniciacao forca pescoco corda garganta simbolizar cordao umbilical',
        //Contact
        email : 'contato@comosermacom.com.br',
        tel : '11 4515-7486',
        whats : '#',
        endereco : 'Rua Padre Benedito de Camargo 797, Penha - SP Capital',
        cidade : 'São Paulo',
        cep : '03604-010 ',
        favicon : 'favicon.png',
        linkgoogle : '',
        linkface : '',
        linktwitter : '',
        author : 'Fabio Guelfi'
    });
});

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Provavelmente existem outras soluções... mas acredito que a solução abaixo resolva:

var contactObj = {
email : 'contato@email.com',
tel : '00 0000-0000',
whats : '#',
endereco : 'Avenida Brasil, Centro - SP Capital',
cidade : 'São Paulo',
cep : '03604-010 ',
favicon : 'favicon.png',
linkgoogle : '',
linkface : '',
linktwitter : '',
author : 'Foo Bar'
  };
    
app.get("/porque-ser-macom",function(req, res) {
    res.render('base-site/porque-ser-macom', {
        //Per page
        title :'Por que ser Maçom?',
        nomeEmpresa :'Instituto de Iniciação e Inclução Maçonica',
        description : 'O postulante ao ingresso nos quadros da Ordem Maçônica, deve autoavaliar-se em busca de valores, costumes, atitudes (interiores), e  comportamentos sociais exteriorizados cotejando-os com algumas premissas...',
        keywords : 'maconaria macom ordem sociedade fraternal integrante organizacao misteriosa sigilosa praticas segredos ritos tradicoes especulacoes reunioes cumprimento palavras socorro senha cerimonia companheiros apuros poderosos monarcas mil milhoes mundo ffinancas politica mobilizar governo controlar Winston Churchill personagens ilustres corrupcao perjurio juramento testemunhar contra violar falso processo judicial trair simbolo dolar nota triangulo olho ve novus ordo seclorum lema Benjamin Franklin design comite coincidencia iniciacao forca pescoco corda garganta simbolizar cordao umbilical',
        //Contact
        contact: contactObj
    });
});

Observe que dentro do json principal foi criado um objeto contact. Isso vai influenciar na leitura deste json. O objetivo foi agrupar as informações que são "genéricas" e mantê-las em uma variável que poderá ser utilizada em outras requisições.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By agodiniz
      Fala galera, estou com um problema e não sei como resolver. Até encontrei umas respostas, mas utilizando Php e Mysql. Preciso que a resposta seja utilizando as tecnologias javascript (node) e Mysql.
      Gostaria de capturar dados de um formulário utilizando array e salvando o mesmo num banco de dados.
       
      Ex:
      Imagine um 3 inputs do tipo text que recebem um valor que é inserido pelo cliente e que cada input, possa receber valores diferentes (como se cada um fosse uma variável 'titulo', 'conteudo' e 'autor')
      quero que depois que o cliente enviar os dados que por ele foram inputados, esses dados sejam enviados para as variáveis 'titulo', 'conteudo' e 'autor'.
      Logo depois quero declarar um array que receba essas variáveis [titulo, conteudo, autor] e desejo armazenar o array no banco de dados utilizando Mysql
       
      Desde já, agradeço!
    • By jhownfs
      Pessoal boa noite,
       
      Criei uma API com nodejs em ES6, pois ainda não tenho experiente com es6, e criei alguns testes com cucumber, porém quando eu executo o meu script de testes fazendo 'cucumber-js src/testes', eu recebo erro como se o cucumber não entendesse que estou usando es6, reclamando do import ou do que vem depois dele. vou enviar o print, alguém sabe o por que? se tenho que instalar alguma dependência para o cucumber?

    • By Gilberto Jr
      Boa noite.
      Eu fiz esse chat usando socket.io com NODE JS.
      Esta funcionando perfeito. 
       
      Porem eu queria implementar duas coisas nele.
      Queria que quando chegasse uma mensagem, aparecesse uma notificação informando o nome da pessoa que enviou, e também parte da mensagem.
       
      E também, quando chegasse uma mensagem, mudar o TITTLE do HTML pra parte da mensagem.
       
      Mas isso deve acontecer, somente no browser das pessoas que receberem a mensagem. A pessoa que enviou, não deve receber a notificação e também o nem deve mudar o TITLE da pagina HTML.
       
      Abaixo segue o código do FRONT END.
      <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Chat Sistema Distribuido</title> <script src="jquery.min.js"></script> <script src="socket.io.js"></script> <link rel="stylesheet" href="style.css"> </head> <body> <form id="chat"> <input type="text" name="username" placeholder="Digite seu usuário"> <div class="messages"></div> <input type="text" name="message" placeholder="Digite sua mensagem"> <button type="submit">Enviar</button> </form> <script type="text/javascript"> var socket = io('http://localhost:3000'); function renderMessage(message){ $('.messages').append('<div class="message"><strong>'+ message.author +'</strong>:<br/>&nbsp&nbsp'+ message.message +'</div>') }; socket.on('previousMessages', function(messages){ for(message of messages){ renderMessage(message); }; }); socket.on('receivedMessage', function(message){ renderMessage(message); }); $('#chat').submit(function(event){ event.preventDefault(); var author = $('input[name=username]').val(); var message = $('input[name=message]').val(); if(author.length && message.length){ var messageObject = { author: author, message: message, }; renderMessage(messageObject); socket.emit('sendMessage', messageObject); } }); </script> </body> </html>  
      Abaixo o código da pagina server.js
      const express = require('express'); const path = require('path'); const app = express(); const server = require('http').createServer(app); const io = require('socket.io')(server); app.use(express.static(path.join(__dirname, 'public'))); app.set('views', path.join(__dirname, 'public')); app.engine('html', require('ejs').renderFile); app.set('view engine', 'html'); app.use('/', (req, res) => { res.render('index.html'); }); let messages = []; io.on('connection', socket => { console.log(`Socket Conectado: ${socket.id}`); socket.emit('previousMessages', messages); socket.on('sendMessage', data =>{ messages.push(data); socket.broadcast.emit('receivedMessage', data); }); }); server.listen(3000); Se alguém puder me ajudar.
       
      Obrado
      Gilberto Jr
    • By SilvioHC
      Olá estou começando a a prender node js mas já no primeiro teste algo de errado não está certo 
      const express = require('express'); const app = express(); app.listen(934); //Sempre Na Ultima Linha não sei dizer se é só o tutorial q é antigo 

    • By Hulkstar
      Boa tarde,estou seguindo um tutorial do DevMedia de como configurar um chat nodejs (Link tutorial Aqui),porém na "Listagem 8. Incluindo o módulo Socket.IO." quando eu faço a alteração do script de acordo com o tutorial e tento rodar o aplicativo no servidor,me aparece o seguinte erro, "http://prntscr.com/ow7kd4",caso eu retire o seguinte script "var io = require('socket.io')(app);",já dei uma pesquisada na internet,porém até agora não consegui achar uma solução para o erro,se alguém souber e poder me ajudar por favor,ficarei muito grato.
       
      Abaixo tem o arquivo app.js
      var app = require('http').createServer(resposta); var fs = require('fs'); var io = require('socket.io')(app); app.listen(3000); console.log("Aplicação está em execução..."); function resposta (req, res) { var arquivo = ""; if(req.url == "/"){ arquivo = __dirname + '/index.html'; }else{ arquivo = __dirname + req.url; } fs.readFile(arquivo, function (err, data) { if (err) { res.writeHead(404); return res.end('Página ou arquivo não encontrados'); } res.writeHead(200); res.end(data); } ); } Abaixo tem o arquivo indes.html
      <!DOCTYPE html> <html> <head> <title>ChatJS - FrontEnd Magazine - DevMedia</title> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> <div id="historico_mensagens"></div> <form id=’chat’> <input type='text' id='texto_mensagem' name='texto_mensagem' /> <input type='submit' value='Enviar mensagem!' /> </form> </body> </html>  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.