Я пытаюсь добавить функциональность поиска продукта в мой проект веб-магазина Node.js. Я использую Express framework с MongoDB/mongoose. Моя идея - загружать индексную страницу всякий раз, когда пользователь нажимает значок поиска (элемент привязки HTML), а в моем router.get
получает все продукты из базы данных, которые заголовки соответствуют пользовательскому вводу.Отправить входное значение узловому серверу в Express.js
Может кто-нибудь сказать мне, как отправить эти данные на сервер и получить его от req
?
Соответствующий код из index.js:
router.get('/', function(req, res, next) {
Product.find({ title: new RegExp(req.data) }, function(err, docs){
var chunks = []; //rows in HTML page
var chunkSize = 3; //No. of elemens in each row
for (var i = 0; i < docs.length; i += chunkSize) {
chunks.push(docs.slice(i, i + chunkSize));
}
res.render('shop/index', { title: 'Shopping Cart', products : chunks });
});
});
Соответствующий код из header.hbs:
<ul class="nav navbar-nav navbar-right">
<li>
<form class="navbar-form navbar-left" role="search" id="search-input">
<div class="form-group">
<input type="text" class="form-control" placeholder="Search">
</div>
<a href="/" class="btn btn-default"><i class="fa fa-search" aria-hidden="true"></i></a>
</form>
</li>
Есть ли способ, чтобы передать данные, что входные, скажем, что-то вроде это:
href ="/:search-input.val"
Я знаю, что это бессмыслица, но вы должны получить то, на что я нацеливаюсь ... Любая помощь была бы очень оценена, поскольку я не могу решить это часами и не найду ответ здесь.
[EDIT] Итак, я добавил обработчик JQuery в header.hbs, но он ничего не делает, даже если Chrome консоль говорит, что запрос XHR успешно. Любые иды?
$('#search-btn').click(function() {
var title = $('#search-input').val();
$.ajax({
type : 'GET',
url: '?title=' + title,
data : title
});
});
Большое спасибо! Но как настроить его в header.hbs? Какой-то метод jQuery AJAX? – dzenesiz
Да, вам нужно будет использовать jQuery/AJAX для выполнения фактического запроса, если вы хотите получить динамическое значение из ''. – peteb
Я пытался с jQuery, но не повезло ... Я редактировал свой вопрос. Если у вас есть время и вы готовы помочь, я был бы очень благодарен. И вы уже много помогли. – dzenesiz