javascript - 访问 Javascript 文件中传递的 EJS 变量

标签 javascript node.js express

RESTful 路由 js 文件:

// index route - show all todos
router.get("/", middleware.isLoggedIn,function(req,res) {
  Todo.find({ "author.id" : req.user._id}, function(err, allTodos) {
    if(err) {
      console.log(err);
    } else {
      res.render("todo/index", {todos: allTodos});
    }
  });        
});

我的 index.ejs 文件有:

<script src="/scripts/todoCalendar.js"></script>

body 标签的末尾,我想访问我的 todoCalendar.js 文件中传递的变量 todos。 我试着把

<script>
  var x= <%= todos %>
</script>

但是当我尝试在我的 todoCalendar.js 文件中执行 console.log(x) 时,它说 x 未定义。

非常感谢任何帮助。

最佳答案

解决问题的三种方法...

  1. 变体

    <script>
        var x = "<%= todos %>";
        console.log(x); 
    </script>
    
  2. 变体

    <script>
        var x = "<%- todos %>";
        console.log(x); 
    </script>
    
  3. 变体 [XD]

    HTML:

    <p id="yy" style="display:none"><%= todos %></p>
    

    Javascript:

    <script>
        var x = document.getElementById("yy").innerText;
        console.log(x); 
    </script>
    

关于javascript - 访问 Javascript 文件中传递的 EJS 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46539106/

相关文章:

javascript - ChatClient 中服务器关闭/重置后未触发错误事件

node.js - 错误!尝试获取 http ://registry. npmjs.org/@typescript-eslint%2feslint-plugin 时响应超时(超过 30000 毫秒)

node.js - 从 NPM 复制 Assets

javascript - 如何让 toJSON 在返回 Sails.js 中的对象之前等待查找?

node.js - 如何在 Node Express 中仍然使用路由器并且仍然具有通配符和参数?

javascript - 如何创建公钥/私钥加密- Node js

javascript - Electron/Node -使用require和readFile的代码片段使javascript失败

javascript - 如何隐藏没有产品reactjs的字符

node.js - Discord.js message.content.includes 创建无限循环

javascript - jquery $.ajax 给出 404 未找到。我将 Node.js 与 Express 一起使用