DEV Community

Gustavo Garcia Pereira
Gustavo Garcia Pereira

Posted on • Edited on

2 1

Server com node: serverjs

Servidor Simples com JavaScript e server.js

Neste post, mergulharemos no mundo da programação para entender como criar e gerenciar servidores, uma habilidade crucial para qualquer desenvolvedor que busca aprimorar suas capacidades. Compartilharei minha experiência com server.js, uma ferramenta intuitiva e eficiente para configurar servidores e criar APIs de maneira simples e rápida. Vou guiá-lo, passo a passo, mostrando como configurar, instalar e criar rotas, além de oferecer dicas valiosas sobre o uso de templates com Pug.

Motivação

O objetivo é consolidar meu conhecimento e apresentar uma forma simplificada de criar uma API.

Começando

Primeiro, instale o server.js:

bash
npm install server
Enter fullscreen mode Exit fullscreen mode

Inclua a seguinte dependência em seu arquivo de configuração:

"dependencies": {
    "server": "^1.0.34"
  }
Enter fullscreen mode Exit fullscreen mode

Após a instalação, vamos criar nossa primeira rota. Comece importando o server e os métodos necessários:

const server = require('server');
const { get, post, error } = server.router;
Enter fullscreen mode Exit fullscreen mode

Configure o servidor com:

const CONFIG = {
    security:{csrf:false}, port:8080
}
Enter fullscreen mode Exit fullscreen mode

Inicie o servidor com a seguinte estrutura:

server(CONFIG, []) // Aqui, adicionaremos nossos métodos e rotas.
Enter fullscreen mode Exit fullscreen mode

Template Pug

Antes de prosseguir, vamos explorar os templates. Utilizo Pug para manipular templates de forma eficiente. Para mais informações, consulte a documentação do Pug. Para integrar o Pug ao seu projeto, utilize o método render:

const { render } = server.reply;
Enter fullscreen mode Exit fullscreen mode

Rotas

As rotas são definidas utilizando métodos como get e post. Aqui estão alguns exemplos:

get('/', () => {
    return render('index.pug', {nome: "meu nome"});
}),
get('/sobre', () => {
    return render('sobre.html');
}),
post('/', (ctx) => {
    console.log(ctx.data['nome'], ctx.data['idade']);
    return render('boas_vindas.pug', {nome: ctx.data['nome'], idade: ctx.data['idade']});
})
Enter fullscreen mode Exit fullscreen mode

O Pug permite passar objetos e realizar herança de templates, o que é extremamente útil e prático.

Código Completo

Aqui está o código completo do servidor com server.js:

const server = require('server')
const { get, post } = server.router
const { render } = server.reply
const CONFIG = {
    security:{csrf:false},port:8080
}

server(CONFIG, [
    // Adicione suas rotas aqui
])
Enter fullscreen mode Exit fullscreen mode

Para mais detalhes, confira a documentação do server.js e serverjs.io.

Vídeo Tutorial

Gravei um vídeo explicando tudo o que está neste artigo com mais detalhes. Assista ao vídeo aqui.

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

nextjs tutorial video

Youtube Tutorial Series 📺

So you built a Next.js app, but you need a clear view of the entire operation flow to be able to identify performance bottlenecks before you launch. But how do you get started? Get the essentials on tracing for Next.js from @nikolovlazar in this video series 👀

Watch the Youtube series

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay