Node.js Экспресс: вызов Ajax из ejs в app.js выборка данных динамически отображает div

#ajax #node.js #express #ejs

#ajax #node.js #выразить #ejs

Вопрос:

У меня есть экспресс-приложение с node.js это,

1) app.get('/', routes.index) указывает на мой index.ejs.

2) на моем index.ejs есть кнопка. При нажатии на нее я хочу вызвать функцию DataGrab в app.js чтобы извлекать данные удаленно и отображать в index.ejs как <table> динамически.

в моем app.js

 var data=[];
grab = function() {
   .... grab data remotely and push to data[]
}
 

Поскольку кнопка фактически находится на стороне клиента, если я хочу вызвать grab() в app.js чтобы заполнить данные [] и использовать их для отображения таблицы в index.ejs, является ли использование ajax единственным способом? Если да, не могли бы вы поделиться простым примером кода?

С уважением, Hammer

Комментарии:

1. Да, AJAX — это единственный способ (без обновления) — просто вызовите свой маршрут через JS

2. здесь все еще существует проблема, связанная с тем, что после того, как я выполню этот вызов ajax, браузер перейдет к localhost:3000 / grab. Если я нажму назад btn на localhost: 3000. Результаты корректно добавляются именно к элементу таблицы. Могу ли я узнать, как остановить эту неожиданную навигацию?

Ответ №1:

Спасибо за tymeJV, он отправляет, я использую приведенный ниже код ,

* отредактируйте, чтобы добавить вызов ajax

внутри моего ejs я использую

 <script>
$.get('/grab',function(data) {
        for(var h=0; h<data.length;h  ){
    $('#newsItemTable').append('<tr><td>' data[h].name '</td></tr>');
        }
     });
</script>
 

в то время как в моем app.js Я использую

 app.get('/grab', function(req, res) {

....
res.send(data);

}
 

Комментарии:

1. здесь все еще существует проблема, связанная с тем, что после того, как я выполню этот вызов ajax, браузер перейдет к localhost:3000 / grab. Если я нажму назад btn на localhost: 3000. Результаты корректно добавляются именно к элементу таблицы. Могу ли я узнать, как остановить эту неожиданную навигацию?