Texto dentro de HTML
Parte de la sección Conceptos básicos de Express del Journey de Node.js de Coddy. Lección 9 de 23.
Un visitante puede escribir caracteres que HTML interpreta como marcado. Si un título contiene <b>, al colocarlo directamente en una página se crea una etiqueta. El escape convierte estos caracteres en texto que muestra el navegador.
escapeHtml('<b>Lunch</b>');
// <b>Lunch</b>La función auxiliar convierte & en &, que el navegador muestra como un ampersand. Las comillas dobles se convierten en "; los apóstrofos se mantienen sin cambios. Aplica el escape a cada valor de texto insertado, sin importar quién lo haya escrito, antes de rodearlo con tu propio HTML. Si aplicas el escape a toda la página, las etiquetas de encabezado también se mostrarán como texto. No necesitas escribir la función auxiliar; lo importante es decidir dónde usarla.
En una URL, escribe un espacio como %20, un ampersand como %26 y los corchetes angulares como %3C y %3E. Estas codificaciones mantienen el texto del título separado de la sintaxis de consulta.
Desafío
FácilEdita exercise.js. Usa la función auxiliar proporcionada con el título antes de colocarlo dentro de tus propias etiquetas de encabezado. Devuelve el encabezado completo en html.
Prueba «Ejecutar»: GET /result?title=Fish%20%26%20Chips devuelve {"html":"<h1>Fish & Chips</h1>"}. Prueba /result?title=%3Cb%3ELunch%3C%2Fb%3E: el título insertado debe ser texto, mientras que el encabezado debe seguir siendo marcado.
Pruébalo tú mismo
import { escapeHtml } from './html.js';
export function exercise({ title }) {
return { html: `<h1>${title}</h1>` };
}
Todas las lecciones de Conceptos básicos de Express
2Respuestas
Respuestas JSONPractica por tu cuenta: Playground de Express