Así que estoy creando una aplicación donde necesita pasar una matriz del servidor al cliente. he tratado de hacer
// Server app.get('/', (req,res) => { res.render('index', { data: ["Hello"] }) }) // EJS <script> const data = '<%- JSON.stringify(locals.data) || [] %>' </script>Pero entonces no es una matriz en los ejs, así que lo intenté.
// Server app.get('/', (req,res) => { res.render('index', { data: ["Hello"] }) }) // EJS <script> const data = JSON.parse('<%- JSON.stringify(locals.data) || [] %>') </script> Eso funcionó hasta que pasé una matriz con un ' , ¿hay alguna forma de que pueda pasar la matriz a javascript si tengo problemas para tener ciertas cartas?
Esto está trabajando con un bot de discordia para obtener los servidores y mostrarlos en una página. Así que quiero asegurarme de que pueda mostrar todos los personajes.
Y si cambio el ' a " o ' todavía podría causar problemas con algunas entradas.
Gracias.
Eso es para @hacKaTun3s por esta respuesta:
const data = <%- JSON.stringify(locals.data) || [] %>Pero esto causa errores de sytax y puede ser molesto, así que estoy usando esto:
EJS:
<p hidden id=scrpt_get_locals><%= JSON.stringify(locals) %></p>Estará oculta y en el script accederemos a su contenido.
JAVASCRIPT: (APLAZAR)
const locals = JSON.parse(document.getElementById('scrpt_get_locals').innerText) // Get element text that has locals, then parse it document.getElementById('scrpt_get_locals').innerText = '' // Remove the text (So we don't have a random element with the locals document.getElementById('scrpt_get_locals').id = '' // Remove id (Optional)Editar:
Acceda arriba a los datos variables que desearía:
console.log(locals.data)