Ao trabalhar no back-end de projetos, lidar com solicitações e respostas é crucial. Gerenciar essas solicitações com eficiência é essencial para uma comunicação tranquila entre o cliente e o servidor. Aqui estão algumas propriedades de solicitação comuns e importantes com as quais todo desenvolvedor deve estar familiarizado.
req.ip em Express.js é uma propriedade do objeto de solicitação que fornece o endereço IP do cliente que faz a solicitação. Ele retorna uma string representando o endereço IP do cliente.
Tratamento de proxies:
Por padrão, se o aplicativo estiver atrás de um proxy, req.ip poderá retornar o IP do proxy em vez do IP real do cliente. Para obter o IP do cliente correto, você pode configurar o Express para confiar no proxy definindo proxy confiável.
app.set("trust proxy", true);
Agora, req.ip retornará o IP correto do cliente mesmo quando estiver atrás de um proxy.
Exemplo:
app.get('/', (req, res) => { console.log(req.ip); // Logs the client's IP address res.send(`Your IP address is ${req.ip}`); });
Para usar req.cookies, precisamos instalar o pacote chamado cookie-parser middleware. A propriedade é utilizada para obter cookies enviados pelo cliente no cabeçalho Cookies. Os cookies em req.cookies não são assinados, o que significa que não foram modificados ou verificados. Você pode usar isso para dados menos confidenciais
import cookieParser from "cookie-parser"; app.use(cookieParser()); app.get('/example', (req, res) => { console.log(req.cookies); // { cookieName: 'cookieValue' } });
Para usar req.signedCookies, precisamos instalar o pacote chamado cookie-parser middleware. Contém cookies que foram assinados e verificados para garantir que não foram alterados. Os cookies assinados são criptografados com a chave secreta. Os req.signedCookies armazenam apenas os cookies que passam na verificação.
Como definir cookies assinados:
Para definir um cookie assinado, você pode usar a opção assinado: true:
res.cookie('signedCookieName', 'signedValue', { signed: true });
Exemplo:
import cookieParser from "cookie-parser"; app.use(cookieParser('your-secret-key')); app.get('/example', (req, res) => { console.log(req.signedCookies); // { signedCookieName: 'signedValue' } });
req.params em Express.js é um objeto que contém parâmetros de rota da URL da solicitação. Os parâmetros de rota são nomeados como espaços reservados no caminho da rota e req.params armazena os valores fornecidos pelo cliente na URL para esses espaços reservados.
Você pode definir uma rota com parâmetros usando dois pontos (:) antes do nome do parâmetro.
Exemplo:
app.get('/users/:userId', (req, res) => { console.log(req.params); // { userId: 'valueFromURL' } res.send(`User ID is ${req.params.userId}`); });
req.query em Express.js é um objeto que contém os parâmetros da string de consulta do URL da solicitação. Strings de consulta são pares de valores-chave que vêm depois do ? em uma URL e são usados para passar dados adicionais ao servidor. Várias consultas podem ser passadas usando &.
URL de exemplo:
http://example.com/search?term=flowers&sort=asc
Exemplo:
app.get('/search', (req, res) => { console.log(req.query); // { term: 'flowers', sort: 'asc' } res.send(`Search term: ${req.query.term}, Sort order: ${req.query.sort}`); });
Contém pares de valores-chave de dados enviados pelo cliente. Por padrão, seu valor é indefinido. Os dados do corpo podem ser preenchidos usando middleware integrado, como express.json e urlencoded ({ estendido: true }), ou middleware externo, como body-parser.
O código a seguir ajuda você a entender
import express from "express"; const app = express(); app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.get("/user", (req, res) => { const user = req.body; consolo.log(user); res.send(user); })
Espero que você tenha achado isso útil! Não esqueça de curtir e salvar para referência futura. Boa codificação!
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3