Estoy usando expressjs como servidor en el puerto 8000. Quiero enviar un valor de cadena desde el archivo expressjs a las etiquetas de script html y usar este valor de cadena en las etiquetas de script. La variable de nombre viene ahora como una cadena vacía. ¿Cómo puedo consolar el valor de la variable de nombre de registro?
servidor-páginas-estáticas.js:
app.get('/index', function(req, res) { var name = "hello"; res.render(__dirname + "/static-pages/journey-analize-report/index.html", {name:name}); });índice.html:
<script type="text/javascript"> console.log(name); </script>Editar: utilicé ejs y ahora el problema es ¿cómo debo describir el atributo de nombre en las etiquetas de script? El siguiente código está dando un error de sintaxis.
<script type="text/javascript"> console.log(<%=name%>); </script>Express.js en sí mismo es un servidor backend. Si desea tener archivos HTML dinámicos, necesita usar motores de plantillas.
Siga este documento -> https://expressjs.com/en/guide/using-template-engines.html
Eventualmente, te darás cuenta de que necesitarás un marco frontend para escribir tu código más rápido y con buena calidad. Así que también le recomiendo que eche un vistazo a algunos de los marcos como React, Vue.js. Si necesita aplicaciones de una sola página, solo usa express.js para proporcionar datos, no para renderizar HTML. Si necesita representación del lado del servidor, es bueno investigar Next.js, Nuxt.js.
Las variables locales enviadas a una vista a través del parámetro locals mediante el método res.render() no son accesibles directamente. En su lugar, debe referirse a aquellos que usan su nombre de variable entre corchetes dobles. Entonces, si desea usarlo dentro de una función de JavaScript, debe declarar una variable local y darle el contenido de su name local.
Simplemente modifique su index.html así:
<script type="text/javascript"> let name = "{{name}}"; console.log(name); </script>aquí está la respuesta ¿Cómo uso HTML como motor de visualización en Express?
lo que necesitará es un paquete de motor de vista en su aplicación. hay muchos motores de visualización disponibles actualmente.
luego configure ese motor de vista en la aplicación express. Active el procesamiento de la vista a través de una llamada desde la respuesta de su ruta como lo hizo anteriormente.
Luego, en su vista, represente la salida html utilizando las variables de vista y, si estas variables se generan en html, puede usarlas en su navegador JavaScript. También puede llamar a un servicio en su html enviando los datos dinámicos también.
echa un vistazo a esj o pug (ps pug es mi favorito personal)