Te traemos la contestación a esta duda, al menos eso creemos. Si sigues con alguna pregunta deja tu comentario y con gusto te responderemos
no puedes.
Nota: solo puede pasar datos de un archivo .ejs a un archivo .js, pero no al revés. No funcionará porque .ejs se procesa en el lado del servidor mientras que .js se ejecuta en el lado del cliente. Supongo que está utilizando EJS en el lado del servidor
1) Puede pasar un valor de variable ejs a una variable de Javascript
<% var test = 101; %> // variable created by ejs
2) No puede pasar un valor de variable js a una variable ejs
Si, tú no puedes: si es en servidor.
Por qué:
La plantilla EJS se representará en el servidor antes de que se inicie la ejecución de js (comenzará en el navegador), por lo que no hay forma de volver al servidor y solicitar algunos cambios anteriores en la página que ya se envió al navegador.
Una solución con Express:
misScripts.js
module.export =
foo() ,
bar()
Luego en tu app.js
var myScripts = require('/path/to/myScripts');
res.render('template',
utils: myScripts
); // you forgot a ')' here
luego en tu template.ejs
// utils will act in global scope for this file
<%
utils.foo();
utils.bar();
%>