javascript - 在 Sails.js 中将值从后端发送到前端并使用 EJS 检查

标签 javascript sails.js frontend backend ejs

我试图从表单提交数据,然后从 Controller 有3种可能性,它已经存在,数据错误,它已成功创建。然后我想向前端返回一个值,假设一切正常,我返回{result: 0}。 然后使用 ejs 检查“结果”的值,如果它是 0,我想调用(前端)javascript 函数。

EJS:

<html>
  <head>
    <script src="functions.js">
  </head>
  <body>
    <form action="/test" method="POST">
      <input type="text" name="data" />
      <button>Send</button>
    </form>
    <div id="message">
      <% if (typeof result !== 'undefined' && result === 0){ %><script>showMessage();</script><% } %>
    </div>
  </body>
</html>

Javascript(前端)

function showMessage() {
  document.getElementById('message').innerText = "sometext";
}

Javascript(后端)

module.exports = {
  postData: function (req, res) {
    Data.findOne({data: req.param('data')}).exec(function (err, data) {
      if (err) {
        return {result : 1};
      }
      if (data) {
        return {result: 2};
      }
      if (!data) {
        Data.create({data: req.param('data')}, function (err, data) {
          if (err) {
            return {result: 1};
          }
          return {result: 0};
        });
      }
    });
  }
}

我知道如何使用 res.view() 发送数据,但我不想再次重新加载页面,我只想向前端发送一些内容并执行一些操作。

感谢您的宝贵时间。

最佳答案

最好的选择是包含您想要内联执行的 Javascript 脚本。然后,如果结果等于 0,您可以使用条件 EJS 子句来包含您的脚本。

<% if (result == 0) { %>
    <script type="text/javascript">
        /* Your Function Here */ 
    </script>
<% } %>

关于javascript - 在 Sails.js 中将值从后端发送到前端并使用 EJS 检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43605410/

相关文章:

javascript - 为什么我不能将 Parent.prototype 分配给 Son.prototype

sails.js - sails JS : set the status code on an error coming from lifecycle callbacks

javascript - ng-init 不适用于 sails.get ("/..")

javascript - mysql 上的 sails v10.0 遇到未定义的 'schema'

javascript - 优化逻辑以部分匹配 2 个数组项

javascript - w2ui 网格中具有多个文本行的单元格

javascript - 附加的加载程序显示在 DOM 中但未呈现

javascript - 如何正确部署 Angular 应用程序(基于ngBoilerplate并使用nginx)?

javascript - 用js填充textarea

javascript - 与在 for 循环中使用 setState 更新状态相关的语法问题