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}}
?Чтобы настроить такой доступ, надо в роли прописать JSON доступа к бакету и приаттачить эту роль к нужным инстансам.
Application Role Creation In order to access S3 bucket from within your application deployed in EC2 you must make it under authorized identity. The common approach is to assign a service role that we are to create beforehand.
- Go to IAM section and navigate to Roles section.
- Under the section Common use cases select EC2 and assign AmazonS3ReadOnlyAccess permission policy on Role.
- Save just created Role.
Upload Application Jar to AWS S3
- Create mjc--jar S3 bucket.
- Make sure the bucket is available for the role created on the step above only. It might be achieved through Bucket Policy.
- Upload your application jar file to the newly created bucket.
Ну или заглянуть внутрь EC2 и смотреть что сломано
Object
. Тогда не пойму, почему после извлечения данных по ключу из localStorage извлекаются объекты, а не строка?