Menu
CoddyTech

Texto dentro do HTML

Parte da seção Fundamentos de Express do Journey de Node.js da Coddy. Lição 9 de 23.

Um visitante pode digitar caracteres que o HTML trata como marcação. Se um título contiver <b>, inseri-lo diretamente em uma página cria uma tag. O escape transforma esses caracteres em texto que o navegador exibe.

escapeHtml('<b>Lunch</b>');
// &lt;b&gt;Lunch&lt;/b&gt;

A função auxiliar transforma & em &amp;, que o navegador exibe como um e comercial. Aspas duplas se tornam &quot;; apóstrofos permanecem inalterados. Faça o escape de cada valor de texto inserido, independentemente de quem o escreveu, antes de envolvê-lo com seu próprio HTML. Fazer o escape da página inteira também exibiria suas tags de título como texto. Você não precisa escrever a função auxiliar; a decisão importante é onde usá-la.

Em uma URL, escreva um espaço como %20, um e comercial como %26 e os sinais de menor e maior como %3C e %3E. Essas codificações mantêm o texto do título separado da sintaxe da consulta.

challenge icon

Desafio

Fácil

Edite exercise.js. Use o auxiliar fornecido no título antes de colocá-lo dentro das suas próprias tags de cabeçalho. Retorne o cabeçalho completo em html.

Tente executar: GET /result?title=Fish%20%26%20Chips retorna {"html":"<h1>Fish &amp; Chips</h1>"}. Tente /result?title=%3Cb%3ELunch%3C%2Fb%3E: o título inserido deve ser texto, enquanto o seu cabeçalho permanece marcação.

Experimente você mesmo

import { escapeHtml } from './html.js';
export function exercise({ title }) {
    return { html: `<h1>${title}</h1>` };
}

Todas as lições de Fundamentos de Express

Pratique por conta própria: Playground de Express