Quiero pasar datos del servidor express a la función javascript directamente, ¿cómo lo hago?
mi archivo html
<!DOCTYPE html> <html> <head> <link type="text/css" rel="stylesheet" href="main.css" /> <script type="text/javascript" src="main.js"> </head> <body> <h1> I want to display message sent by server with js function in main.js, not with <%= msg %> </h1> </body> </html>mi principal.js
window.addEventListener('load', function() { console.log('All assets loaded'); get_data(); }); function get_data() { fetch('./', ) .then(function(response) { return response.text(); }) .then(async function() { console.log("data passed by html is: ") console.log(msg) //msg is sent by express server }); }mi express index.js (usando ejs)
app.get('/', function(req, res){ res.render("main.html",{msg:"hello"}); });Puede agregar una etiqueta de secuencia de comandos a su HTML y generar código Javascript:
<script> const msg = "<%= msg %>"; </script> Asegúrese de agregar esta etiqueta de script antes de su etiqueta de script main.js La constante msg debería estar disponible globalmente en su código Javascript.
Aunque esto responde a la pregunta, no lo recomiendo. Si necesita usar un valor de su backend en su código de frontend, debe buscarlo desde un punto final.