【问题标题】:Handling json response in .ejs page node.js处理 .ejs 页面 node.js 中的 json 响应
【发布时间】:2014-09-07 22:28:39
【问题描述】:

我是 node.js 的初学者!

我无法处理 .ejs 页面中的 json 响应。 当用户尝试使用错误的详细信息登录时,我正在呈现同一页面并发送一些 JSON 响应并检查此发送的响应是否不为空,然后显示一些警报或类似“未识别的详细信息”之类的东西。

 res.redirect('login', { LoginInvalid: "LoginInvalid" });

在页面中使用响应-

<script>
    if(JSON.stringify(<%-LoginInvalid%>)!=null){
    console.log('invalid details'); 
    }
</script>

但是这个脚本没有运行并且页面显示LoginInvalid is not defined的参考错误

请指导我解决这个小问题。

【问题讨论】:

    标签: javascript jquery json node.js


    【解决方案1】:

    如果您使用 res.redirect(),则不能将变量传递给您的 ejs 模板(请阅读 http://expressjs.com/api.html#res.redirect 了解更多信息)。如果您确实想在其中传递一些变量,唯一的方法是使用像这样的 GET 查询字符串

    res.redirect('login?LoginInvalid=LoginInvalid');
    

    并从登录控制器解析 LoginInvalid 查询字符串。

    【讨论】:

      【解决方案2】:

      您可以在 express-flash 模块中使用 Flash 消息。

      var flash = require('express-flash');
      
      app.use(flash());
      

      然后在你的路线上,

      req.flash('login', { LoginInvalid: "LoginInvalid" });
      res.redirect('/login');
      

      在你看来,

      <% if (messages.login.LoginInvalid) { %>
          <%= messages.login.LoginInvalid
      <% } %>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-19
        • 2017-12-15
        • 1970-01-01
        • 1970-01-01
        • 2016-11-05
        • 1970-01-01
        相关资源
        最近更新 更多