Object
. Тогда не пойму, почему после извлечения данных по ключу из localStorage извлекаются объекты, а не строка? searchRequest.onreadystatechange = function() {
console.log(this.readyState)
console.log(this.status)
};
Точнее что должна сделать твоя функция в express?
let searchValueFromPage = JSON.stringify(request.body.searchQuery);
exports.index = function (request, response) {...}
searchRequest.send({searchQuery: searchValue});
Argument type {searchQuery: any} is not assignable to parameter type Document | XMLHttpRequestBodyInit | null | undefined
request.body.searchValue;
приGET
запросе, если у GET
запроса нету тела?На фронте:
searchRequest.send({ searchValue: searchValue });
На бэке:
let searchValueFromPage = request.body.searchValue;
const bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
searchValue
, оно не пустое, а имеет значение, всё ок. Когда на сервере пытаюсь проверить, что пришло в переменной searchValue
, то получаю undefined
, почему такое может происходить? <script>
let inputSearch = document.getElementById('search');
inputSearch.onkeyup = function () {
let searchValue = inputSearch.value;
updateGiftCertificateList(searchValue);
};
function updateGiftCertificateList(searchValue) {
let url = '/';
let httpRequestType = 'GET';
let searchRequest = new XMLHttpRequest();
searchRequest.open(httpRequestType, url, true);
searchRequest.setRequestHeader('Content-Type', 'text');
searchRequest.responseType = 'text';
// Request completed. Here we can process the result.
searchRequest.onload = function () {
console.log('search value: ' + searchValue);
}
searchRequest.send(searchValue);
}
</script>
input
. Поисковой запрос (значение, строка) присваивается переменной let searchValue
и в функции updateGiftCertificateList()
данное значение отправляется на сервер с помощью метода searchRequest.send(searchValue);
Node.JS
как получить значение переменной searchValue
? exports.index = function (request, response) {
let giftCertificates;
let searchValueFromPage = request.body;
...
}
fetch
. handlebars
отрабатываетonleyup
с помощью JS
на стороне клиентаNode.JS
default.hbs
(приведу краткое содержание):<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{{title}}</title>
<link href="../../css/style.css" rel="stylesheet" type="text/css">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons"
rel="stylesheet">
</head>
<body>
<div id="workspace">
{{> header}}
{{{body}}}
{{> footer}}
</div>
</body>
</html>
<script>
, где я подключу файл *.js
, в котором будет выполняться обработка события onkeyup
либо правильней будет вставить в файл header.hbs
, содержимое которого будет вставлено на место выражения {{> header}}
?