Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我们可以将JavaScript变量值分配给EJS变量吗?_Javascript_Node.js_Express_Ejs - Fatal编程技术网

我们可以将JavaScript变量值分配给EJS变量吗?

我们可以将JavaScript变量值分配给EJS变量吗?,javascript,node.js,express,ejs,Javascript,Node.js,Express,Ejs,我试图将JS变量值放入同一页面中的EJS变量中 <script> var i = 22; document.getElementById('abcd').innerHTML = i; <% ejsVar %> = i; </script> var i=22; document.getElementById('abcd')。innerHTML=i; =i; 这是不可能的,因为在将页面发送到客户端之前会对EJS模板进行评估。为了简单地

我试图将JS变量值放入同一页面中的EJS变量中

<script>
    var  i = 22;
    document.getElementById('abcd').innerHTML = i;
    <% ejsVar %> = i;
</script>

var i=22;
document.getElementById('abcd')。innerHTML=i;
=i;

这是不可能的,因为在将页面发送到客户端之前会对EJS模板进行评估。为了简单地表示流程,它如下所示:

服务器:运行Node.js->评估脚本->运行EJS(评估模板)->发送到浏览器->客户端:评估HTML并运行JavaScript代码

可以通过给渲染器对象赋值,在服务器端为EJS变量赋值:

let ejs = require('ejs');
let scope = {};

// Assign a value to an EJS variable
scope.ejsVar = "Hello world!";

// Render the template using the scope
let html = ejs.render('Var: <%= ejsVar %>', scope); // "Var: Hello world!";
让ejs=require('ejs');
让作用域={};
//为EJS变量指定一个值
scope.ejsVar=“你好,世界!”;
//使用作用域呈现模板
让html=ejs.render('Var:',scope);//“你好,世界!”;
  • 将变量值添加到从客户端请求正文obj
  • 通过从客户机传递请求正文,向服务器调用post请求
  • 从req.body中提取您的值,并将其分配给服务器中的ejs变量
  • 您可以使用npm主体解析器在服务器中提取它

  • 因此,EJS将在页面交付到浏览器之前在服务器上运行。服务器在
    中填充内容后,
    标记内的Javascript将在浏览器中运行。所以,这似乎不太可能满足你的要求。但是,对于任何帮助你的人来说,你需要描述一下你正在努力实现的目标。这里的问题应该描述您真正的问题,而不仅仅是您试图编写代码时遇到的问题。是的,标记将在服务器已填写内容后在浏览器中运行。仍然不知道您试图完成什么。我已经在代码中使用了
    。我有一个onclick函数,调用时,js变量值应该分配给该ejs变量@JFriend00您似乎不明白,在页面进入浏览器之前以及在任何onclick可以处理之前,EJB已经在服务器上处理很久了。浏览器中没有EJ。在
    标记中定义自己的Javascript变量并分配给该变量。