调用节点函数,从 ejs 形式
call node function, from ejs form
我正在制作一个节点应用程序,我需要调用一个函数,它写在我的 app.js 中,我需要从一个表单中调用它,在一个模板中,用 ejs 制作。
我正在使用 node.js、express.js 和 ejs。
有人可以帮忙吗?
您可以使用常规 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
});
您想使用 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 路由,但是这会将用户重定向到该路由,因此您必须处理那个。
我正在制作一个节点应用程序,我需要调用一个函数,它写在我的 app.js 中,我需要从一个表单中调用它,在一个模板中,用 ejs 制作。 我正在使用 node.js、express.js 和 ejs。 有人可以帮忙吗?
您可以使用常规 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
});
您想使用 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 路由,但是这会将用户重定向到该路由,因此您必须处理那个。