Leitores como você ajudam a apoiar o MUO. Quando você faz uma compra usando links em nosso site, podemos ganhar uma comissão de afiliado. Consulte Mais informação.

O Sequelize é um mapeador relacional de objeto (ORM) Node.js que fornece uma API fácil de usar para bancos de dados relacionais, como Oracle, PostgreSQL, MySQL, MariaDB, SQLite e muito mais.

O PostgreSQL é um sistema de gerenciamento de banco de dados relacional (RDBMS) de código aberto amplamente utilizado, conhecido por seus amplos recursos, excelente segurança e escalabilidade.

O PostgreSQL é compatível com várias linguagens de programação, incluindo JavaScript, tornando-o uma escolha ideal para aplicativos da Web e baseados em dados. Aqui você aprenderá a configurar um banco de dados Postgres em Node.js usando o Sequelize.

Passo 1: Instalando Dependências

Antes de poder usar o PostgreSQL, você precisa instalá-lo em seu sistema. Para baixar o PostgreSQL, navegue até o Site do PostgreSQL e escolha seu sistema operacional. Se você tiver problemas durante este processo no macOS, confira instalando o PostgreSQL no macOS.

Como alternativa, você pode usar o PostgreSQL na nuvem aproveitando plataformas como ElefanteSQL que oferecem o PostgreSQL como um serviço.

Em seguida, instale sequelar executando o seguinte comando:

npm install sequelize

Em seguida, instale o driver do banco de dados PostgreSQL executando o comando abaixo:

npm instalar pg pg-hstore

Etapa 2: conectando-se a um banco de dados PostgreSQL

No diretório de origem do seu projeto, crie um configuração pasta. No configuração pasta, crie um db.js arquivo. Este arquivo conterá todo o código que conecta seu aplicativo Node.js a um banco de dados PostgreSQL.

A seguir, em seu db.js arquivo, importar Sequelize de sequelar.

const { Sequelize } = exigir("sequela");

Em seguida, você precisa criar um Sequelize instância. Essa instância usa parâmetros de conexão, como nome do banco de dados, nome de usuário e senha como argumentos. Como alternativa, é necessário um único URI de conexão como argumento.

Por exemplo:

// Parâmetros de conexão
const sequelizar = novo Sequelize('base de dados', 'nome de usuário', 'senha')

// com URI
const sequelizar = novo Sequelize (process.env. POSTGRESQL_DB_URI)

Além disso, esse construtor usa um objeto de configuração como um argumento opcional.

Em seguida, teste sua conexão sequelize adicionando o código abaixo do seu db.js arquivo:

const testDbConnection = assíncrono () => {
tentar {
aguardam sequelize.authenticate();
console.registro("A conexão foi estabelecida com sucesso.");
} pegar (erro) {
console.erro("Não foi possível conectar ao banco de dados:", erro);
}
};

O bloco de código acima chama o sequelar.autenticar() para testar se a conexão está OK e imprime "A conexão foi estabelecida com sucesso." para consolar se for. Se houver um erro de conexão, ele imprimirá "Não foi possível conectar ao banco de dados:" junto com o erro.

Finalmente, exporte a instância sequelize e o testDbConnection função.

módulo.exportações = { quadrado: sequelize, testDbConnection };

Etapa 3: criando um modelo de sequência

No diretório de origem do seu projeto, crie um modelos pasta. Esta pasta conterá todos os seus modelos de sequelização. Em seguida, crie um arquivo de modelo. O nome que você dá ao arquivo deve fornecer informações sobre a representação do modelo.

Em seu arquivo de modelo, importe a instância sequelize.

// exemplo.js
const { quadrado } = exigir("../config/db");

Em seguida, importe Tipos de dados de sequelar.

const { Tipos de Dados } = exigir("sequela");

Tipos de dados permite definir o tipo de dados necessário para cada propriedade em seu modelo.

Você pode criar um novo modelo sequencial representando uma tabela em seu banco de dados chamando o método definir método em sua instância sequelize.

O definir O método recebe dois argumentos: o nome do modelo e um objeto de atributos. O nome do modelo representa o nome do modelo. O objeto de atributos representa as colunas do banco de dados, com cada propriedade representando uma coluna.

Aqui está um exemplo de um modelo de sequelização:

const Usuário = sq.define("do utilizador", {
e-mail: {
tipo: DataTypes. CORDA,
allowNull: falso,
chave primária: verdadeiro,
},

nome completo: {
tipo: DataTypes. CORDA,
},

idade: {
tipo: DataTypes. INTEIRO,
},

empregado: {
tipo: DataTypes. BOLEANO,
valor padrão: falso,
},
});

O bloco de código acima define um Do utilizador modelo com um e-mail, nome completo, idade, e empregado propriedades.

O e-mail propriedade é um tipo de string que não pode estar vazio (allowNull: falso) e também atua como a chave primária para o Do utilizador mesa (PrimaryKey: true). O nome completo e a idade são uma string (Tipos de dados. CORDA) e tipo inteiro (Tipos de dados. INTEIRO), respectivamente. O empregado propriedade é um tipo booleano com um valor padrão de falso, o que significa que, se não for especificado, será definido automaticamente como falso no banco de dados.

A seguir, ligue para o sincronizar método em seu modelo. Este método usa um objeto de configuração como argumento. Dependendo das opções no objeto de configuração, o sincronizar método pode:

  • User.sync(): Cria a tabela se ela não existir e não faz nada se ela existir.
  • User.sync({ force: true }): Crie a tabela e descarte a primeira se ela já existir.
  • User.sync({ alter: true }): Verifique o estado atual da tabela no banco de dados e faça as alterações necessárias na tabela para que ela corresponda ao modelo.

Por exemplo:

Usuário.sync().then(() => {
console.registro("Modelo de usuário sincronizado");
});

O bloco de código acima cria a tabela de banco de dados para o Do utilizador modelo se não existir e não faz nada se existir.

Finalmente, exporte seu modelo:

módulo.exports = Usuário;

Consultando um banco de dados PostgreSQL

O Sequelize fornece vários métodos que permitem que você interaja com seu banco de dados PostgreSQL sem escrever dados brutos Comandos SQL.

Salvando dados no PostgreSQL

Para salvar dados em um banco de dados PostgreSQL, chame o criar em seu modelo e passar um objeto que implementa o modelo PostgreSQL como um argumento.

Por exemplo:

const mike = User.create({
e-mail: "[email protected]",
nome completo: "Mike Smith",
idade: 30,
empregado: verdadeiro,
});

O bloco de código acima cria um Do utilizador instancia de Mike em seu banco de dados e gera automaticamente um ID exclusivo.

Recuperando dados do PostgreSQL

Os dados podem ser recuperados de várias maneiras de um banco de dados PostgreSQL usando sequelize, mas isso depende da natureza dos dados que você deseja receber.

Os métodos mais comuns para recuperar dados são os encontrar um e encontrar tudo métodos. O encontrar tudo retorna todas as instâncias de dados que satisfazem uma determinada consulta, enquanto encontrar um retorna a primeira instância que satisfaz a consulta.

Por exemplo:

// Encontra todos os usuários
const usuários = aguardam User.findAll();

O código acima retornará todos os Do utilizador instâncias no banco de dados.

Você pode filtrar os dados retornados usando o onde declaração. Essa instrução permite adicionar determinadas condições à consulta. Sua consulta retornará apenas instâncias que atendam a essas condições.

Por exemplo:

User.findAll({
onde: {
empregado: falso
}
});

O código acima retornará todos os Do utilizador instâncias com seus empregado propriedade definida como falso no banco de dados.

Atualizando dados no PostgreSQL

Você pode atualizar dados no banco de dados PostgreSQL chamando o método atualizar método e passando um filtro como argumento.

Por exemplo:

aguardam User.update({ empregado: verdadeiro }, {
onde: {
empregado: falso
}
});

O código acima altera todos os Do utilizador instâncias com um empregado valor de falso para verdadeiro.

Como alternativa, você pode atualizar os dados modificando manualmente as propriedades que deseja alterar e chamando o salvar método na instância.

Por exemplo:

const usuarioMike = aguardam Usuário.findOne({ onde: { e-mail: "[email protected]" } });

se(usuárioMike !== nulo) {
userMike.email = "[email protected]"
aguardam userMike.save()
}

O código acima consulta o banco de dados para um usuário com o e-mail “[email protected]” usando o encontrar um método. Se o usuário for encontrado, ele reatribui a propriedade de email para “[email protected]” e chama o salvar método para atualizar o banco de dados.

Excluindo dados no PostgreSQL

Você pode excluir dados no PostgreSQL chamando o método destruir método e passando um filtro como argumento.

Por exemplo:

aguardam User.destroy({
onde: {
e-mail: "[email protected]"
}
});

O código acima consulta o banco de dados em busca de um usuário com o e-mail “[email protected]” e exclui o usuário do banco de dados.

Benefícios do uso do PostgreSQL com o Sequlize

Escrever consultas SQL brutas para interagir com um banco de dados PostgreSQL pode ser um aborrecimento. Com o Sequelize, você pode facilmente definir modelos, criar associações entre eles e consultar o banco de dados com uma API simples e intuitiva. Como alternativa, você pode usar outros ORMs, como TypeORM, para interagir com um banco de dados PostgreSQL sem o incômodo de escrever consultas SQL brutas.