2
respostas

erro ao criar tabela . ( throw new Error(`Unrecognized datatype for attribute "${this.name}.${name}"`);)

PS E:\fluttergit\api\Rest-com-NodeJS-API-com-Express-e-MySQL> node .\api\index.js
E:\fluttergit\api\Rest-com-NodeJS-API-com-Express-e-MySQL\node_modules\sequelize\lib\model.js:1001
        throw new Error(`Unrecognized datatype for attribute "${this.name}.${name}"`);
        ^

Error: Unrecognized datatype for attribute "fornecedor.empresa"
    at E:\fluttergit\api\Rest-com-NodeJS-API-com-Express-e-MySQL\node_modules\sequelize\lib\model.js:1001:15
    at E:\fluttergit\api\Rest-com-NodeJS-API-com-Express-e-MySQL\node_modules\lodash\lodash.js:13469:38
    at E:\fluttergit\api\Rest-com-NodeJS-API-com-Express-e-MySQL\node_modules\lodash\lodash.js:4967:15
    at baseForOwn (E:\fluttergit\api\Rest-com-NodeJS-API-com-Express-e-MySQL\node_modules\lodash\lodash.js:3032:24)
    at Function.mapValues (E:\fluttergit\api\Rest-com-NodeJS-API-com-Express-e-MySQL\node_modules\lodash\lodash.js:13468:7)
    at Function.init (E:\fluttergit\api\Rest-com-NodeJS-API-com-Express-e-MySQL\node_modules\sequelize\lib\model.js:997:28)
    at Sequelize.define (E:\fluttergit\api\Rest-com-NodeJS-API-com-Express-e-MySQL\node_modules\sequelize\lib\sequelize.js:440:11)
    at Object.<anonymous> (E:\fluttergit\api\Rest-com-NodeJS-API-com-Express-e-MySQL\routes\fornecedores\modeloTabelaFornecedores.js:30:28)
    at Module._compile (internal/modules/cjs/loader.js:1068:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
PS E:\fluttergit\api\Rest-com-NodeJS-API-com-Express-e-MySQL>
2 respostas

meu codigo :

const Sequelize = ('sequilize');
const instancia = require('../../provider/index')

const colunas ={
            empresa : {
                type: Sequelize.STRING,
                allowNull: false
            },
            email : {
                type: Sequelize.STRING,
                allowNull: false
            },
            categoria: {
        type: Sequelize.ENUM,
                value:('racao', 'brinquedos'),
        allowNull: false
    }

}

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

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

Boa tarde Carlos, tudo certo?

Eu notei algumas disparidades entre o seu código e o fornecido pelo curso:

No arquivo api/rotas/fornecedores/ModeloTabelaFornecedor.js:

As primeiras duas linhas deveriam ser:

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

Mas você escreveu

const Sequelize = ('sequilize');
const instancia = require('../../provider/index')

Então você não está instanciando a biblioteca de forma correta nesse arquivo e, se a sua estrutura de arquivos estiver como a do curso, também não está utilizando as configurações do banco de dados adequadamente.

Eu sugiro seguir o fluxo e dar uma conferida geral no seu projeto comparado ao repositório do curso. Caso ainda reste alguma dúvida, sugiro abrir outro tópico e disponibilizar um repositório com o seu código.

Espero ter ajudado e bons estudos!