[Sistema De Agendamento (Módulo Node.JS - Semana 5)] Perguntas, Respostas e Compartilhamentos

também achei… na verdade não sei explicar porque funciona. o import não está a ser utilizado, mas não precisei de mexer no model (não acrescentei nem o return nem o tableName)

3 Likes

Todos conseguiram resolver os problemas?

3 Likes

Boa noite, Michel! Quando eu coloco esse import ‘./database’ surge esse erro:
ConnectionRefusedError [SequelizeConnectionRefusedError]: connect ECONNREFUSED 127.0.0.1:5432
Tem ideia de como resolver? Sem ele dá problema de length…

2 Likes

Oi @derekcsantos, você tentou as ações no bug 2 do post inicial?
Para ter certeza de que seu banco de dados está em running, sugiro dar uma olhada nesse post mais acima.

3 Likes

sim, eu já tinha alterado isso:

2 Likes

Inclusive, eu estou usando o ElephantSQL e o users foi criado corretamente no postbird (como na aula), mas no momento que o prof. foi adicionar o primeiro user e ele corrigiu o problema com o export class Database (), foi que começou a dar esse problema. Será que tem relação o uso do link do ElephantSQL?
meu database.js em config tá assim:


Atualização: RESOLVIDO: O problema era justamente nesse database.js, usei uma outra recomendação do @michelnegrao nos comentários do post dele e funcionou: Usar o ElephantSQL ao invés do Docker - AULA Node.JS HTTP GET e HTTP POST - #7 by michelnegrao

4 Likes

Cara, depois de tentar várias coisas, funcionou! Muito obrigadooo!

3 Likes

Tentei mas não consegui conectar com o Elephant, mesmo seguindo as recomendações do @michelnegrao

Vou continuar com o docker mesmo.

3 Likes

Tô com o mesmo problema. O json é exibido mas o usuário não é gerado

3 Likes

Consegui resolver o problema 2 (aula 7).

  • No arquivo User.js eu adicionei return.this; no fim da função static init(sequelize) {...};
  • No arquivo dentro da pasta migrations troquei o created_at e updated_at por createdAt e updatedAt;
  • No arquivo routes.js eu importei o database:
    import Database from './database/index';
  • No fim, resetei o database no postbird. Joguei no terminal:
   npx sequelize db:migrate:undo:all
   npx sequelize db:migrate
   npm run dev

Só assim funcionou pra mim.

6 Likes

Alguem passou da aula 16?,

3 Likes

Passei por ela hahaha mas meu app deu crash. Estou seguindo até o final codificando junto e vou tentar consertar depois, porque do contrário vou demorar muito.

2 Likes

depois que ele bota o model:File, as: ‘photo’ Meu app deu crash total, tentei achar soluçoes mas… ta osso kkk

4 Likes

qual o erro ?

2 Likes

C:\Users\pheli\OneDrive\Área de Trabalho\PROJETOS\sistemadeagendamento\node_modules\sequelize\lib\associations\base.js:13
throw new AssociationError(You have used the alias ${options.as} in two separate associations. Aliased associations must have unique aliases.);
^

AssociationError [SequelizeAssociationError]: You have used the alias photo in two separate associations. Aliased associations must have unique aliases.
at new Association (C:\Users\pheli\OneDrive\Área de Trabalho\PROJETOS\sistemadeagendamento\node_modules\sequelize\lib\associations\base.js:13:13)
at new HasMany (C:\Users\pheli\OneDrive\Área de Trabalho\PROJETOS\sistemadeagendamento\node_modules\sequelize\lib\associations\has-many.js:28:5)
at Function.hasMany (C:\Users\pheli\OneDrive\Área de Trabalho\PROJETOS\sistemadeagendamento\node_modules\sequelize\lib\associations\mixin.js:22:25)
at index (C:\Users\pheli\OneDrive\Área de Trabalho\PROJETOS\sistemadeagendamento\src\app\controllers\CollaboratorController.js:6:20) at Layer.handle [as handle_request] (C:\Users\pheli\OneDrive\Área de Trabalho\PROJETOS\sistemadeagendamento\node_modules\express\lib\router\layer.js:95:5)
at next (C:\Users\pheli\OneDrive\Área de Trabalho\PROJETOS\sistemadeagendamento\node_modules\express\lib\router\route.js:144:13)
at Route.dispatch (C:\Users\pheli\OneDrive\Área de Trabalho\PROJETOS\sistemadeagendamento\node_modules\express\lib\router\route.js:114:3)
at Layer.handle [as handle_request] (C:\Users\pheli\OneDrive\Área de Trabalho\PROJETOS\sistemadeagendamento\node_modules\express\lib\router\layer.js:95:5)
at C:\Users\pheli\OneDrive\Área de Trabalho\PROJETOS\sistemadeagendamento\node_modules\express\lib\router\index.js:284:15
at Function.process_params (C:\Users\pheli\OneDrive\Área de Trabalho\PROJETOS\sistemadeagendamento\node_modules\express\lib\router\index.js:346:12)

2 Likes

Alguém teve esse problema aqui quando tentou fazer o migrate da migration userphoto?

2 Likes

Descobri meu erro, estava escrevendo primaryKey da forma errada :sweat_smile:

3 Likes

Oi @willy, é só um palpite para uma linha de pesquisa, ok? Mas a mensagem parece estar reclamando do relacionamento entre userphots e files. Essa relação me parece que é definida na linha references: { model: 'files', key: 'id'}, da migration. Eu validaria se os nomes de campos em ambas as tabelas estão conforme deveriam.

No github do projeto a migration é essa abaixo:

'use strict';

module.exports = {
  up: async (queryInterface, Sequelize) => {
    return queryInterface.addColumn(
      'users',
      'photo_id',
      {
        type: Sequelize.INTEGER,
        references: { model: 'files', key: 'id'},
        onUpdate: 'CASCADE',
        onDelete: 'SET NULL',
        allowNull: true
      }
    )
  },

  down: async (queryInterface, Sequelize) => {
    return queryInterface.removeColumn('users', 'photo_id')
  }
};
2 Likes

Boa!

3 Likes

Boa noite galera,
To lendo aqui as replys mas não to conseguindo resolver meu problema… se alguem puder me dar um luz agradeço. O erro é o seguinte quando vou rodar o sequelize para criação da Database no Postbird:

C:\Users\rafae\Desktop\sistema-de-agendamento>npx sequelize db:migrate

Sequelize CLI [Node: 16.15.0, CLI: 6.4.1, ORM: 6.20.1]

Loaded configuration file “src\config\database.js”.
== 20220603233550-create-users: migrating =======

ERROR: Cannot read properties of undefined (reading ‘type’)

3 Likes