A implantação de aplicativos Node.js não deve ser um aborrecimento. Coloque seu servidor Express.js em funcionamento com a plataforma econômica e fácil de usar do Render.
No final de 2022, a Heroku descontinuou sua opção de nível gratuito, resultando na remoção do plano de assinatura gratuita anteriormente disponível para hospedagem na web e outros serviços em nuvem em seu ecossistema.
Os níveis gratuitos são particularmente úteis e econômicos se você pretende implantar e hospedar aplicativos por um curto período. Felizmente, existe uma plataforma de nuvem alternativa que, como o Heroku, oferece um nível gratuito para seus serviços de nuvem, entre outras vantagens.
Neste artigo, exploraremos como implantar uma API REST Express.js no Render, uma plataforma de hospedagem baseada em nuvem.
O que é renderizar?
Render é uma plataforma de hospedagem em nuvem que fornece uma maneira simples e sem complicações de implantar e gerenciar sites estáticos, aplicativos da Web completos, APIs de back-end ou bancos de dados na nuvem. Os recursos incluem:
- Interface amigável: Render fornece uma interface simples e intuitiva que simplifica o processo de implantação de aplicativos desenvolvidos com linguagens de programação populares, como Python e Node.js.
- Bancos de dados integrados: Render oferece suporte integrado para bancos de dados populares, como PostgreSQL, MySQL e MongoDB, tornando-o fácil de configurar e integrar bancos de dados em aplicativos sem ter que configurar bancos de dados separados servidores.
- Fluxo de trabalho de implantação contínuo: o Render fornece recursos como implantações automatizadas, reversões e integrações com serviços populares como GitHub e GitLab.
- Domínios personalizados e SSL: Render oferece a capacidade de configurar nomes de domínio personalizados para sites e aplicativos da web e inclui certificados SSL gratuitos para acesso HTTPS seguro.
Comparação entre Render e Heroku
Como as outras plataformas de nuvem, o Render tem suas vantagens e desvantagens. Mas como ele se compara a soluções de nuvem populares como Heroku?
- Simplicidade: Render fornece uma interface amigável para implantação e gerenciamento de aplicativos, com foco na facilidade de uso e configuração mínima.
- Escalonamento automatizado: Render dimensiona aplicativos automaticamente com base na demanda, sem exigir ajustes manuais ou configurações complexas.
- Custo-benefício: Render oferece preços econômicos que incluem um nível gratuito para projetos individuais e preços relativamente baixos para equipes e planos organizacionais, tornando-o uma opção econômica para hospedar aplicativos da Web de pequena escala e grandes projetos.
- Flexibilidade limitada: Sua simplicidade e configuração mínima podem ser uma limitação para projetos avançados e complexos que exigem mais customização e controle sobre o ambiente de hospedagem.
Configurar um novo projeto na renderização
Para começar, vá para Site do Render e cadastre-se e faça login na sua conta.
O Render facilita a implantação e o gerenciamento de APIs de back-end, oferecendo suporte integrado para linguagens de programação populares e serviços da Web que agilizam o processo de implantação.
Este guia fará uso de seu recurso de serviços da Web para implantar uma API REST Express.js. Para acompanhar, você precisará primeiro configurar uma instância de banco de dados PostgreSQL no Render.
Na página de visão geral, clique no botão Novo PostgreSQL botão para configurar uma nova instância.
Em seguida, preencha o nome do seu banco de dados e clique em Criar banco de dados. Por fim, copie o URL do banco de dados interno oferecido. Você o usará para configurar a conexão entre sua API Express REST e o banco de dados PostgreSQL.
Essencialmente, a URL do banco de dados interno é usada para estabelecer uma conexão entre os aplicativos em execução nos servidores do Render, como uma API implantada ou um aplicativo da Web completo.
No entanto, se você deseja utilizar apenas o banco de dados PostgreSQL de um aplicativo implantado em outra plataforma, pode usar o URL do banco de dados externo para configurar a conexão do banco de dados.
Criar uma API REST do Express.js
Vá em frente e criar um servidor web Express.js. Em seguida, instale os seguintes pacotes:
npm instalar pg knex
Você pode encontrar o código deste projeto neste Repositório GitHub.
Configurar a conexão do banco de dados
Para configurar a conexão entre a API Express.js e a instância PostgreSQL do Render, no diretório raiz da pasta do seu projeto, crie um db.js arquivo e adicione o código abaixo.
const knex = exigir('knex');
const db = knex({
cliente: 'pg',
conexão: {
string de conexão: 'o URL do banco de dados',
ssl: {
rejeitarNão autorizado: falso
}
}
});módulo.exports = banco de dados;
A seguir, abra o index.js arquivo e adicione o código abaixo desse implementa uma API REST simples com quatro rotas.
const expresso = exigir("expressar");
const aplicativo = expresso()
const banco de dados = exigir('./db')
const PORT = processo.env. PORTO || 5000app.use (express.json())
app.use (express.urlencoded({ estendido: verdadeiro }))app.get('/', (req, res) => res.send('Olá Mundo!' ))
// Pega todos os usuários
app.get('/Usuários', assíncrono (req, res) => {
tentar {
const usuários = aguardam db.select().from('Usuários')
res.json (usuários)
} pegar (erro) {
console.erro (erro)
res.status(500).json({ mensagem: 'Erro ao recuperar usuários' })
}
})
app.post('/Usuários', assíncrono (req, res) => {
tentar {
const usuário = aguardam db('Usuários').inserir({ nome: req.body.name }).returning('*')
res.json (usuário)
} pegar (erro) {
console.erro (erro)
res.status(500).json({ mensagem: 'Erro ao criar usuário' })
}
})// Excluir um usuário existente
app.delete('/usuários/:id', assíncrono (req, res) => {
tentar {
const { id } = req.params
const usuário = aguardam db('Usuários').where({ id }).delete().returning('*')
res.json (usuário)
} pegar (erro) {
console.erro (erro)
res.status(500).json({ mensagem: 'Erro ao excluir usuário' })
}
})
app.listen (PORT, () => console.registro(`Servidor em PORT:${PORTA}`))
Configurar o arquivo migration.js
Criar uma nova pasta, scripts, no diretório raiz do seu projeto, adicione um novo arquivo, migrar.js, e por fim, adicione o código abaixo:
const banco de dados = exigir('../db');
(assíncrono () => {
tentar {
aguardam db.schema.dropTableIfExists('Usuários')
aguardam db.schema.withSchema('público').criar a tabela('Usuários', (tabela) => {
table.increments()
tabela.string('nome')
})
console.registro('Tabela de usuários criada!')
process.exit(0)
} pegar (err) {
console.log (erro)
process.exit(1)
}
})()
Este código irá criar um novo Usuários tabela no banco de dados com duas colunas: um campo de chave primária de incremento automático e um campo de nome.
Por fim, adicione esses comandos ao seu pacote.json arquivo.
"scripts": {
"começar": "node index.js",
"migrar": "scripts de nó/migrate.js",
},
Por fim, para criar a tabela do usuário no banco de dados, você precisa executar o migrar.js arquivo como um script em seu terminal usando o comando abaixo.
npm executar migrar
No entanto, antes de executar o comando, certifique-se de recuperar o URL do banco de dados externo das informações de configurações de instância do PostgreSQL do Render e cole-as no db.js arquivo como a string de conexão.
Isso estabelecerá uma conexão com a instância do banco de dados de sua máquina local, permitindo que você crie a tabela antes de implantar a API. Depois que a tabela é criada, você pode ir para a instância do PostgreSQL do Render, recuperar o URL do banco de dados interno, e atualizar o db.js arquivo de acordo.
Implante a API REST no Render
Primeiro, crie um novo repositório no GitHub e empurre o código do projeto. Em seguida, faça login na sua conta do Render, clique no botão Novo+ botão e selecione o botão Serviço de internet opção no menu suspenso.
Por fim, acesse sua conta do GitHub, selecione o repositório do seu projeto e conecte-se a ele no Render.
Na página de configurações do serviço da Web, forneça um nome para o novo serviço, especifique o diretório raiz do projeto, o comando build e start e, finalmente, clique em Criar Web Service. Depois que o processo de implantação estiver concluído, copie a URL fornecida para testar os endpoints no Postman.
Teste os endpoints da API no Postman
O Postman é uma ferramenta popular para desenvolver e testar APIs. Para se familiarizar com o Postman, aprenda como usá-lo para testar uma API.
Para testar a API implantada, faça um PUBLICAR pedido ao /Usuários endpoint para armazenar dados no banco de dados PostgreSQL.
Por fim, faça uma solicitação GET para recuperar os dados armazenados.
A renderização é uma alternativa viável?
O Render fornece um processo de configuração simples e integração perfeita com sistemas populares de controle de versão, tornando-o uma boa plataforma alternativa de hospedagem em nuvem.
Além disso, seu modelo de preço competitivo e suporte integrado para ferramentas de desenvolvimento populares o tornam uma opção confiável e fácil de usar para projetos paralelos e grandes aplicativos comerciais.