Ir para conteúdo

cmoreira1300

Members
  • Total de itens

    1
  • Registro em

  • Última visita

Posts postados por cmoreira1300


  1. Meu programa não consegue identificar o dotenv na middleware

    Eu estava fazendo um CRUD simples, implementei o dotenv no meu programa, está funcionando quando faço a conexão com o banco de dados e a inserção e uma função normal,  mais quando vou fazer isso dentro de uma middleware ele não chama meu dotenv, só funciona quando tiro o process.env e ponho as informações direto na função de conexão.

    require( 'dotenv' ).config( { path: '../../.env' } )
    const mysql = require( 'mysql2' )
    
    // DESSA FORMA NÃO FUNCIONA
    const connection_pool = mysql.createPool( {
      host: process.env.DB_HOST,
      user: process.env.DB_USER,
      database: process.env.DB_DATABASE,
      password: process.env.DB_PASS 
    } )
    
    
    // DESSA FORMA FUNCIONA
    // const connection_pool = mysql.createPool( {
    //   host: 'localhost',
    //   user: 'carlos',
    //   database: 'simple_crud',
    //   password: 'pass1241' 
    // } )
    
    module.exports = connection_pool.promise()

    INSERÇÃO NO BANCO DE DADOS

    const db_conn = require( '../db/connection' ) 
    
    const createNewClient = ( name ) => { 
      return db_conn.execute( `INSERT INTO client ( name ) values (?)`, [ name ] ) 
    }
    
    module.exports = { createNewClient }

    FAZENDO A INSERÇÃO NO MIDDLEWARE

    const data = require( '../data/client' )
    
    const createClient = ( req, res, next ) => {
    
      const client = req.body.name  
       
      data.createNewClient( client )
        .then( () => {
          res.status( 200 ).json( { 'status': 'sucess', 'client': client } )
        } )
        .catch( ( err ) => {
          res.status( 404 ).json( { status: 'error', error: err } )
        } )
        .finally( () => { 
          next()
        } )
    }
    
    module.exports = { createClient }
    {
    	"status": "error",
    	"error": {
    		"message": "Access denied for user ''@'localhost' (using password: YES)",
    		"code": "ER_ACCESS_DENIED_ERROR",
    		"errno": 1045,
    		"sqlState": "28000",
    		"sqlMessage": "Access denied for user ''@'localhost' (using password: YES)"
    	}
    }

     Esse é o erro que obtenho quando uso o dotenv, lenbrando que as informações de login estão todas certas, e que em outra função que não seja um middleware funciona.

×

Informação importante

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