Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Error: Configuration property "mysql.banco-de-dados" is not defined

Estou a dois dias tentando resolver esse problema mas nada do que eu faço parece resolver. Tento executar o comando node api/index.js assim como o instrutor mas aqui sempre diz que o "mysql.banco-de-dados não está definido. Já verifiquei a ortografia, ja tentei modificar as palavras para tentar fazer com que dê certo e mesmo assim não funciona.

Esse é o 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á funcionando!'));

esse é o meu api\banco-de-dados\index.js

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

const instancia = new Sequelize(
    config.get("mysql.banco-de-dados"),
    config.get("mysql.usuario"),
    config.get("mysql.senha"),
    {
        host: config.get('mysql.host'),
        dialect: 'mysql'
    }
)

module.exports = instancia

esse é o meu default.json

{
    "mysql": {
        "banco-de-dados": "petshop",
        "usuario": "root",
        "senha": "220722",
        "host": "127.0.0.1"
    },
    "api": {
        "porta": 3000
    }
}

E independente do que eu tente continua aparecendo isso

PS C:\Users\Luky\Desktop\Códigos JS\NodeJS\api-petshop> node api/index.js
WARNING: No configurations found in configuration directory:C:\Users\Luky\Desktop\Códigos JS\NodeJS\api-petshop\config
WARNING: To disable this warning set SUPPRESS_NO_CONFIG_WARNING in the environment.
C:\Users\Luky\Desktop\Códigos JS\NodeJS\api-petshop\node_modules\config\lib\config.js:182
    throw new Error('Configuration property "' + property + '" is not defined');
    ^

Error: Configuration property "mysql.banco-de-dados" is not defined
    at Config.get (C:\Users\Luky\Desktop\Códigos JS\NodeJS\api-petshop\node_modules\config\lib\config.js:182:11)
    at Object.<anonymous> (C:\Users\Luky\Desktop\Códigos JS\NodeJS\api-petshop\api\banco-de-dados\index.js:5:12)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (C:\Users\Luky\Desktop\Códigos JS\NodeJS\api-petshop\api\rotas\fornecedores\ModeloTabelaFornecedor.js:2:19)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
PS C:\Users\Luky\Desktop\Códigos JS\NodeJS\api-petshop> 

Como resolvo esse problema?

6 respostas

O arquivo default.json está dentro da pasta config? E essa pasta está dentro na raíz do projeto api-petshop?

Pelo erro que deu, ele está procurando as variáveis dentro de C:\Users\Luky\Desktop\Códigos JS\NodeJS\api-petshop\config, mas não está achando o arquivo default.json dentro dessa pasta.

Se estiver tudo certo e ainda não funcionar, você pode tentar abrir o VS Code como Administrador para testar.

O caminho para o arquivo default.json é C:\Users\Luky\Desktop\Códigos JS\NodeJS\api-petshop\api\banco-de-dados\config\default.json.

Sendo assim ela esta dentro da raiz que seria a pasta API certo?

Tentei entrar como Administrador mas deu a mesma.

solução!

Consegui resolver o problema. Peguei a pasta CONFIG e joguei na pasta api-petshop... e Funcionou... Mas porque não estava encontrando o caminho antes? Eis a questão.

O eu tinha feito da mesma forma que o instrutor pediu. Mas da forma dele esta incorreta, ou pelo menos não é mais plausível para a versão atual do que eu uso.

Eu ainda não terminei esse curso, então não sei se o instrutor mexe nessa pasta mais pra frente. Porém, na Atividade 03 da Aula 01, ele cria a pasta config (com o arquivo default.json) dentro da pasta api-petshop, que é a raíz do projeto.

O programa não deveria estar encontrando esse arquivo antes porque, por padrão, a pasta config fica no diretório raíz e a biblioteca utilizada nessa aula deve só procurar por arquivos ali. Como ele estava dentro de outra pasta, acabou não funcionando.

Mas que bom que agora você conseguiu arrumar. Show de bola!

Muito obrigado pela sua ajuda mano. Ajudou DEMAAAAIS.

Tive o mesmo problema. So consegui resolver, mudando a pasta config para dentro da pasta banco de dados. Antes a pasta config estava na raiz e não estava executando corretamente, apresentando o erro:

property "mysql.banco-de-dados" is not defined