【问题标题】:call node function, from ejs form调用节点函数,来自 ejs 形式
【发布时间】:2017-02-18 05:57:28
【问题描述】:

我正在制作一个节点应用程序,我需要调用一个函数,写在我的 app.js 中,我需要从模板中的一个表单中调用它,使用 ejs 制作。 我正在使用 node.js、express.js 和 ejs。 谁能帮忙?

【问题讨论】:

    标签: node.js forms function express ejs


    【解决方案1】:

    您可以使用常规的 HTML 表单,将其内容提交到服务器上的某个 URL。

    例子:

    将表单添加到 HTML/EJS:

    <form method="GET" action="/sampleUrl">
      <input type="submit" name="submit">
    </form>
    

    将路由添加到您的 app.js:

    var express = require('express');
    var app     = express();
    
    app.get('/sampleUrl', function(req, res) {
      //Do something
    });
    

    【讨论】:

      【解决方案2】:

      您想使用 ajax 与服务器端功能交互:

      $.get('/your_route', {data: 'goes here'}, function (res) {
          console.log('callback after your node function is done')
      })
      

      您可以通过以下方式从模板调用函数:

      <form class="ajax_caller" onsubmit="do_ajax_call()">form goes here</form>
      

      但这并不是一个好的做法。这好多了:

      // click event
      $(document).on('submit', 'form.ajax_caller', do_ajax_call)
      
      function do_ajax_call (e) {
          e.preventDefault()
          $.get('/your_route', {data: 'goes here'}, function (res) {
              console.log('callback after your node function is done')
          })
      }
      

      当然,您必须在 express 中设置路线:

      app.get('/your_route', function (req, res) {
          finally_your_function()
          res.send('finished')
      });
      

      如果您不想使用 ajax,您可以将表单的操作设置为您的 ajax 路由,但是这会将用户重定向到该路由,因此您必须处理它。

      【讨论】:

      • 谢谢,帮了大忙
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-03
      • 1970-01-01
      • 2018-10-26
      • 2016-03-01
      • 1970-01-01
      • 2020-02-21
      相关资源
      最近更新 更多