3
respostas

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

Prezados, boa noite.

Estou tomando o seguinte erro," C:\Users\Diego Santos\Documents\Alura\002 - NodeJS API Rest Padronizada Escalavel\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\Diego Santos\Documents\Alura\002 - NodeJS API Rest Padronizada Escalavel\api-petshop\node_modules\config\lib\config.js:182:11) at Object. (C:\Users\Diego Santos\Documents\Alura\002 - NodeJS API Rest Padronizada Escalavel\api-petshop\api\banco-de-dados\index.js:6:12) at Module.compile (internal/modules/cjs/loader.js:1063:30) at Object.Module.extensions..js (internal/modules/cjs/loader.js:1092:10) at Module.load (internal/modules/cjs/loader.js:928:32) at Function.Module._load (internal/modules/cjs/loader.js:769:14) at Module.require (internal/modules/cjs/loader.js:952:19) at require (internal/modules/cjs/helpers.js:88:18) at Object. (C:\Users\Diego Santos\Documents\Alura\002 - NodeJS API Rest Padronizada Escalavel\api-petshop\api\rotas\fornecedores\ModeloTabelaFornecedor.js:3:20) " , ao tentar criar a tabele; meu código está da seguinte forma:

default.json

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

/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

ModeloTabelaFornecedor.js


const Sequelize = require('sequelize')
const  instancia = require('../../banco-de-dados')

const colunas ={
    empresa: {
        type: Sequelize.STRING,
        allowNull: false
    },
    email: {
        type: Sequelize.STRING,
        allowNull: false
    },
    categoria: {
        type: Sequelize.ENUM('ração ','brinquedos'),
        allowNull: false
    },
}

const opcoes ={
    freezerTableName: true,
    TableName: 'fornecedores',
    timestamps: true,
    createdAt: 'dataCriacao',
    updatedAt: 'dataAtualizacao',
    version: 'versao'
}

module.exports = instancia.define('fornecedor', colunas, opcoes)

criarTabelas.js

const ModeloTabela = require('../rotas/fornecedores/ModeloTabelaFornecedor')

ModeloTabela
    .sync()
    .then(() => console.log('Tabela criada com sucesso'))
    .catch(console.log)

Podem me ajudar a resolver o problema, por favor?

3 respostas

O arquivo "default.json" precisa estar dentro da pasta "config" na raiz

O meu está na raiz e não funciona.

É obrigatório criar a pasta "config" na raiz e depois incluir o arquivo "default.json" dentro dessa pasta.