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

时间:2018-07-15 13:43:26

标签: javascript node.js express ejs

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

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

2 个答案:

答案 0 :(得分:0)

这是不可能的,因为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!";

答案 1 :(得分:0)

  1. 添加变量值以从客户端请求主体obj
  2. 通过传递来自客户端的请求正文来向服务器发出发布请求
  3. 从req.body中提取值并将其分配给服务器中的ejs变量
  4. 您可以使用npm body-parser将其提取到服务器https://www.npmjs.com/package/body-parser