调用节点函数,来自ejs表单

时间:2016-10-09 19:27:41

标签: node.js forms function express ejs

我正在创建一个节点应用程序,我需要调用一个函数,写在我的app.js中,我需要从一个表单,一个模板,用ejs调用它。 我使用node.js,express.js和ejs。 有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

您想使用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')
    })
}

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

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

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

答案 1 :(得分:0)

您可以使用常规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
});