ExpressJS
-
npm install express --save.
Exemplos
-
GET básico:
import express from 'npm:express'; const app = express(); app.get('/', (req: express.Request, res: express.Response) => { res.send('Hello World!'); }); app.listen(3000, () => { console.log('Server is running on http://localhost:3000'); }); -
GET com body:
import express from 'npm:express'; const app = express(); app.use(express.json()); app.get('/oi', (req: express.Request, res: express.Response) => { console.log(request.body); res.send('Hello World!'); }); app.listen(3000, () => { console.log('Server is running on http://localhost:3000'); }); -
GET com "Router":
-
Supostamente é tipo pastas da URL.
-
A URL completa é no formato
https://discord.com/api/v9/channels
import express from 'npm:express'; const app = express(); app.use(express.json()); const api = express.Router(); api.get('/channels', (request: express.Request, response: express.Response) => { }); api.get('/users', (request: express.Request, response: express.Response) => { }); api.use('/api/v9', api); app.listen(3000, () => { console.log('Server is running on http://localhost:3000'); }); -
-
GET com ID:
import express from 'npm:express'; const app = express(); app.use(express.json()); app.get('/produtos/:id', (request: express.Request, response: express.Response) => { const {id} = request.params; res.send(`ID pedido: ${id}`); }); app.listen(3000, () => { console.log('Server is running on http://localhost:3000'); });
Status
-
**Regras:
-
No Express, você só pode enviar uma única resposta para cada requisição, seja ela JSON, texto ou qualquer outro formato.
-
No Express, para evitar o timeout, você deve sempre enviar uma resposta completa usando um dos métodos como
res.send,res.json, oures.end.-
Enviar apenas
res.status(200);não é suficiente no Express. Esse comando define o código de status HTTP para a resposta, mas não a encerra nem envia conteúdo. O cliente continuará aguardando até o timeout porque nenhuma resposta final foi enviada.
-
-
-
**Boas práticas:
-
Nunca chame
res.send,res.jsonoures.endmais de uma vez na mesma requisição. -
Use
console.logou uma biblioteca como Winston para registrar logs do servidor.
-
-
Uso do status:
res.status(200).json(personagem); // Explicitamente define que o Status é 200. res.json(personagem); // Implicitamente define o Status padrão, que é 200. -
.send:
-
Envia uma resposta ao cliente, que pode incluir um corpo de mensagem (
body). -
Ele formata automaticamente o conteúdo, como strings, objetos JSON, buffers ou números.
-
Finaliza a resposta após o envio.
-
Se usado sem parâmetros (
res.send()), ele enviará um corpo vazio (' 'ou equivalente anull) e definirá automaticamente o cabeçalhoContent-Lengthcomo0. -
Pode inferir o tipo de conteúdo e ajustar o cabeçalho
Content-Typeautomaticamente.
res.send(); // Envia uma resposta com corpo vazio e encerra res.send('Hello World'); // Envia uma string res.send({ message: 'Hello World' }); // Envia um objeto JSON -
-
.end:
-
Finaliza a resposta HTTP sem adicionar cabeçalhos ou fazer formatação adicional.
-
Pode incluir dados diretamente como um buffer ou string, mas não faz formatação automática.
-
Não define automaticamente o cabeçalho
Content-Type. -
Não faz formatação ou inferência do conteúdo.
-
É útil para cenários de respostas de baixo nível.
res.end(); // Finaliza a resposta sem enviar conteúdo res.end('Hello World'); // Envia a string e finaliza res.end(Buffer.from('Hello World')); // Envia um buffer e finaliza -
-
**.json:
-
O
.json()converte um objeto JavaScript (ou um valor) para o formato JSON e envia a resposta. -
Ele define automaticamente o cabeçalho
Content-Typeda resposta comoapplication/json, informando ao cliente que a resposta contém dados no formato JSON. -
Também converte o objeto JavaScript para uma string JSON, o que permite que os dados sejam facilmente lidos e interpretados por clientes como navegadores, APIs, ou aplicativos.
res.json(data); -
-
Exemplo 1:
-
Não funciona:
res.status(500).json({ message: (error as Error).message }); res.send('(get_personagem) Find com erro.'); // Essa linha será ignorada.-
Funciona:
res.status(500).json({ message: (error as Error).message, log: '(get_personagem) Find com erro.' }); -
-
Exemplo 2:
-
Funciona:
res.status(200).send('(put_criaturas) Sucesso.\n');res.status(200).send(); // Responde com 200 e sem conteúdo-
Não funciona:
res.status(200); -
Oak (Deno)
-
Oak .
Deno Serve
Deno.serve(...)
-
.