2016-10-09 3 views
1

Я создаю приложение-узел, где мне нужно вызвать функцию, написанную внутри моего app.js, и мне нужно вызвать ее из формы в шаблоне, сделанной с помощью ejs , Я использую node.js, express.js и ejs. Может ли кто-нибудь помочь?function node node, from ejs form

ответ

0

Вы хотите использовать 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') 
    }) 
} 

Ofcourse вам придется настроить маршрут экспресс:

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

Если вы не хотите использовать Ajax, вы можете просто задать действие формы на ваш маршрут ajax, однако это перенаправит пользователя на маршрут, поэтому вам придется это обработать.

+0

Thx, который помог многим –

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 
}); 
Смежные вопросы