Estoy tratando de enviar opciones JSON a un archivo pug con un espacio en los nombres de los atributos.
Por ejemplo, dentro de una solicitud de obtención expresa:
let json = {"Attribute Name With Spaces": "Value"} res.render('loader.pug', json);¿Cómo accedo a estos datos en el archivo pug? Es difícil cambiar el formato del json porque es externo y no es algo que hice yo mismo.
Pug hace que los locales estén disponibles bajo la propiedad de los locals , por lo que simplemente puede usar lo siguiente...
h1= locals["Attribute Name With Spaces"] p Here's the var #{locals["Attribute Name With Spaces"]}No pude encontrar ninguna documentación oficial para esto, por lo que es posible que no siempre sea una opción confiable.
Otra opción para hacer esto más fácil sería simplemente agrupar todas sus propiedades json en un solo objeto...
res.render("loader.pug", { props: json });Entonces puedes usar algo como esto
h1= props["Attribute Name With Spaces"] p #{props["Attribute Name With Spaces"]}Alternativamente, transforme su objeto para normalizar las claves
res.render( "loader.pug", Object.fromEntries( Object.entries(json).map(([key, val]) => [key.replaceAll(" ", "_"), val]) ) );y use
h1= Attribute_Name_With_Spaces