2
respostas

Erro Configuration property "mysql.database" is not defined

Estou com o mesmo problema que foi relatado por alguns colegas, ja verifiquei o arquivo da aula do github, e está exatamente ao meu código. Até rodei pelo arquivo do github, mesmo erro relatado abaixo. Seria a versão do meu node?

Erro:

PS C:\dev\node\api-petshop\api\database> node .\criarTabelas.js
WARNING: No configurations found in configuration directory:C:\dev\node\api-petshop\api\database\config
WARNING: To disable this warning set SUPPRESS_NO_CONFIG_WARNING in the environment.
C:\dev\node\api-petshop\node_modules\config\lib\config.js:182
    throw new Error('Configuration property "' + property + '" is not defined');
    ^

Error: Configuration property "mysql.database" is not defined
    at Config.get (C:\dev\node\api-petshop\node_modules\config\lib\config.js:182:11)
    at Object.<anonymous> (C:\dev\node\api-petshop\api\database\index.js:5:10)
    at Module._compile (node:internal/modules/cjs/loader:1092:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1121:10)
    at Module.load (node:internal/modules/cjs/loader:972:32)
    at Function.Module._load (node:internal/modules/cjs/loader:813:14)
    at Module.require (node:internal/modules/cjs/loader:996:19)
    at require (node:internal/modules/cjs/helpers:92:18)
    at Object.<anonymous> (C:\dev\node\api-petshop\api\rotas\fornecedores\ModeloTabelaFornecedor.js:2:19)
    at Module._compile (node:internal/modules/cjs/loader:1092:14)

Versão do node: v15.14.0


Estrutura do projeto no VSCode igual a da aula.

Meu arquivo em config\default.json

{
  "mysql": {
    "database": "petshop",
    "usuario": "root",
    "senha": "password",
    "host": "127.0.0.1"
  },
  "api": {
    "porta": 3000
  }
}

Meu api/index.js


const express = require('express')
const app = express()
const bodyParser = require('body-parser')
const config = require('config')
const roteador = require('./rotas/fornecedores')

app.use(bodyParser.json())

app.use('/api/fornecedores', roteador)

app.listen(config.get('api.porta'), () => console.log('A API está rodando'))

Obrigado pela ajuda!

2 respostas

Problema resolvido. Troquei o termo mysql.database para mysql.banco e funcionou.

Meu erro foi o mesmo, depois de identificar que no campo do host eu estava informando o ip do servidor do banco de dados:

host: config.get('127.0.0.1'), após alterar conforme código abaixo executou normalmente:

const Sequelize = require('sequelize')
const config = require('config')

const instancia = new Sequelize(
    config.get('mysql.database'),    /* INF. PREENCHIDAS CONFORME DEFAULT.JSON */
    config.get('mysql.user'),           
    config.get('mysql.password'),        
    {
        host: config.get('mysql.host'),  <=//ATUAL 
        dialect: 'mysql'
    }
)

module.exports = instancia