Size: a a a

JavaScript — русскоговорящее сообщество

2019 December 09

AP

A P in JavaScript — русскоговорящее сообщество
Romanovskiy
я же писал, что я поднимал его, но он работает на 8000 порту, а я использую browserSync, работающий на 3000 и подружить их нельзя.
Пытаясь обойти этот вопрос я наткнулся на postman и firebase
не понимаю что значит подружить нельзя
источник

M

Michael in JavaScript — русскоговорящее сообщество
Romanovskiy
я то только за.  но тогда вообще на пальцах спрошу.
например есть у меня запрос:
var request = new XMLHttpRequest();
request.open('post', './data/submitForm.json', true);
request.setRequestHeader('Content-type', 'multipart/form-data');


request.onreadystatechange = function() {
 if (this.readyState != 4) return;
 ***
}

request.onerror = function() {
 ***
};

var fd = new FormData(form);
request.send(fd);


В таком виде через devtools я не смогу проверить корректность отправки данных, т.к. браузер выдаст мне 404 ошибку, об отсутствии ./data/submitForm.json
Перед request.send я могу добавить вывод данных:
for(var [name, value] of fd) {
 console.log(name +' : '+ value)
}

Этого достаточно? Мне бы хотелось проверить что-же реально улетает в запрос.
Для этого мне приходится загружать вёрстку на хост, там запускать скрипт и смотреть через devtools что же реально ушло.

Как можно упростить этот процесс?
корректность проверяется по результату выдаваемому самим API. в данном случае очевидно используется xmlhttprrquest. чтобв не велосипедить в данном направлении (с обработкой ошибок) - есть готовые решения. и это к счастью не postman (нужен для тестирования ответов сервера) и не firebase (ходят слухи, каличная бд ноу эскуэль) и даже не docker (ну камон) с чайником и салатиком винегрет (ням ням). верстка гавкучая.. что же это такое?
источник

R

Romanovskiy in JavaScript — русскоговорящее сообщество
A P
не понимаю что значит подружить нельзя
Попробовал поднять ещё раз и понял свою ошибку. Почему-то в прошлый раз я хотел, чтобы browserSync работал именно на том же порту, что и локальный сервер) Пьяный наверное был))
Получается если я сейчас сменю пусть запросов с ./data/submitForm.json на localhost:8000/data/submitForm.json, то посты должны начать работать.

Спасибо
источник

M

Michael in JavaScript — русскоговорящее сообщество
главное сейчас как огурчик😅👍
источник

R

Romanovskiy in JavaScript — русскоговорящее сообщество
Michael
корректность проверяется по результату выдаваемому самим API. в данном случае очевидно используется xmlhttprrquest. чтобв не велосипедить в данном направлении (с обработкой ошибок) - есть готовые решения. и это к счастью не postman (нужен для тестирования ответов сервера) и не firebase (ходят слухи, каличная бд ноу эскуэль) и даже не docker (ну камон) с чайником и салатиком винегрет (ням ням). верстка гавкучая.. что же это такое?
используется конечно request.onerror и readyState.

в общем я кажется понял откуда начинают ноги расти.
Я раньше ajax писал на жиквейри и моих бэкэндщиков всё устраивало.
настройки были такого типа:
url:  './data/submitForm.json',
method: 'post',
data: fd,
dataType: 'json',
contentType: 'multipart/form-data',
crossDomain: true,


а после отказа от жиквери в пользу ванилы, я начал использовать XMLHttpRequest по примеру с learn.javascript.ru
И вот тут то начались проблемы, т.к. на learn написано, что формдаты нужно отправлять в теле запроса, что я и сделал.
А бэкэндщики завыли, что начались ошибки. Они привыкли, что им всё прилетает в заголовке запроса, но никак не в теле (Видимо так реализована передача в жикваери). "Из тела очень сложно выковыривать данные, только если регулярками" (c)
И вообще стали менять заголовок Content-type с  'multipart/form-data' на 'application/x-www-form-urlencoded', чтобы легче разбирать данные.

Но я не нашёл ни одного примера, где бы формдату передавали в заголовке.
Соответствнно новый вопрос: Программисты лентяи и их нужно лупить палками или действительно файлы нужно в заголовке передавать?
источник

СО

Сергей Онищенко in JavaScript — русскоговорящее сообщество
Romanovskiy
Потому что при вёрстке используются аджакс запросы. Верстаю без поднятия локального сервера. Поэтому пост запросы не проходят. Сервер пытался поднять, но он открывается на 8000 порту, а я использую browserSync и он использует 3000 порт. Вместе их подружить не удалось.

Раньше при вёрстке использовал гет, а перед сборкой продакшена менял на пост. Но последнее время начались встречаться формы, в которых нужно отправлять файлы. Файлы - форм дата, а она на гете уже совсем не работает.
Вот и хочется найти способ верстать сразу на корректных типах запросов и отдавать бэкэндщикам проверенную вёрстку.
Постман нормуль....хотя написать на ноде бек под свои нужды дело 2-3з часов..и вариантов поганять и посмотреть данные больше..
источник

СО

Сергей Онищенко in JavaScript — русскоговорящее сообщество
Romanovskiy
используется конечно request.onerror и readyState.

в общем я кажется понял откуда начинают ноги расти.
Я раньше ajax писал на жиквейри и моих бэкэндщиков всё устраивало.
настройки были такого типа:
url:  './data/submitForm.json',
method: 'post',
data: fd,
dataType: 'json',
contentType: 'multipart/form-data',
crossDomain: true,


а после отказа от жиквери в пользу ванилы, я начал использовать XMLHttpRequest по примеру с learn.javascript.ru
И вот тут то начались проблемы, т.к. на learn написано, что формдаты нужно отправлять в теле запроса, что я и сделал.
А бэкэндщики завыли, что начались ошибки. Они привыкли, что им всё прилетает в заголовке запроса, но никак не в теле (Видимо так реализована передача в жикваери). "Из тела очень сложно выковыривать данные, только если регулярками" (c)
И вообще стали менять заголовок Content-type с  'multipart/form-data' на 'application/x-www-form-urlencoded', чтобы легче разбирать данные.

Но я не нашёл ни одного примера, где бы формдату передавали в заголовке.
Соответствнно новый вопрос: Программисты лентяи и их нужно лупить палками или действительно файлы нужно в заголовке передавать?
Палками.....
источник

M

Michael in JavaScript — русскоговорящее сообщество
нормуль? есть еще мэйл.ру браузер, как он там, амиго. тоже нормуль, ага. он раньше нормулем был, сейчас там неведренный инсталлятор с кучей барахла..
источник

СО

Сергей Онищенко in JavaScript — русскоговорящее сообщество
А ещё раньше розги замачивали в солевом растворе...великолепно работает..)))
источник

СО

Сергей Онищенко in JavaScript — русскоговорящее сообщество
Michael
нормуль? есть еще мэйл.ру браузер, как он там, амиго. тоже нормуль, ага. он раньше нормулем был, сейчас там неведренный инсталлятор с кучей барахла..
Поганять запросы без бэка это все что нужно человеку...постмана мне кажется хватит с головой...
источник

R

Romanovskiy in JavaScript — русскоговорящее сообщество
Да у каждого инструмента есть свои плюсы и минусы, просто понятное дело, что монстры типо докера для такой простой задачи не нужны. Постмэн уже сильно проще, но с первого взгляда тоже слишком наворочен для моей задачи. В целом локальный сервер должен меня устроить полностью.
источник

R

Romanovskiy in JavaScript — русскоговорящее сообщество
Тогда ещё раз на всякий пожарный спрошу: в рамках XMLHttpRequest корректный ли данный код, при отправке формы с файлами?
```
var request = new XMLHttpRequest();
request.open('post', './data/submitForm.json', true);
request.setRequestHeader('Content-type', 'multipart/form-data');


request.onreadystatechange = function() {
 if (this.readyState != 4) return;
 ***
}

request.onerror = function() {
 ***
};

var fd = new FormData(form);
request.send(fd);

```
источник

M

Michael in JavaScript — русскоговорящее сообщество
иногда шутки встречаются, про так называемых индусов-программистов.. но тут уже не до шуток (я не зря привел национальный продукт мэйл.ру браузер в пример)
источник

M

Michael in JavaScript — русскоговорящее сообщество
Romanovskiy
Тогда ещё раз на всякий пожарный спрошу: в рамках XMLHttpRequest корректный ли данный код, при отправке формы с файлами?
```
var request = new XMLHttpRequest();
request.open('post', './data/submitForm.json', true);
request.setRequestHeader('Content-type', 'multipart/form-data');


request.onreadystatechange = function() {
 if (this.readyState != 4) return;
 ***
}

request.onerror = function() {
 ***
};

var fd = new FormData(form);
request.send(fd);

```
твой код превосходен бро👍
источник

СО

Сергей Онищенко in JavaScript — русскоговорящее сообщество
А что индусы...дёшево и сердито....жили бы поближе и работы с их запросами лишилось бы пол Европы..
источник

R

Romanovskiy in JavaScript — русскоговорящее сообщество
Понял, спс)
источник

M

Michael in JavaScript — русскоговорящее сообщество
источник

СО

Сергей Онищенко in JavaScript — русскоговорящее сообщество
И бэк розгами солёными...файлы по фен-шую в теле запроса ползают...
источник

II

Igor Ishin in JavaScript — русскоговорящее сообщество
Привет, подскажите, как nodejs mongodb в массиве референсов найти по _id есть ли элемент или нет
источник

NG

Nikita Gorbunov in JavaScript — русскоговорящее сообщество
ребят как лучше решить задачу:
"написать функцию, которая из произвольного входящего массива выберет все комбинации чисел, сумма которых 15"
источник