Всего 125 961 комментарий

Сергей Шлоков
12 мая 2022, 16:49
+1
JWT обычно используют для API. Если тебе нужно использовать его на сайте, то пихай его в куки. Можно использовать пакет jwtSession.
Роман
12 мая 2022, 16:13
0
Просто extjs уже 7.5, а мы все еще ковыряемся в 3.4. Может стоит как-то настройки поменять в Ext.form.ComboBox. Если заменить на обычный селект, изменится ли что-то?
Alexey
12 мая 2022, 15:12
0
Роман, так понимаю, вендор не выводится тоже в каких-то кастомных таблицах? Не могу сообразить, где в админке по дефолту это может быть.

Я спросил одного очень уважаемого разработчика, тот ответил, что «Это глюки работы самого комбобокса в гриде, в основном как я понял из-за того что данные в него не успевают вовремя подгрузиться».

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

Это только мои размышления вслух, в extJs я совсем «по верхам» работаю — в стиле «скопировал, поправил, проверил»)) Возможно, я ошибаюсь в самой логике запросов — пусть меня поправят старшие товарищи.
Giant Dad
12 мая 2022, 15:07
0
Сам спросил — сам ответил. Для вывода остатков нужно создавать не доп. поле на вкладке «Свойства товара», а опцию stock. А в настройке moysklad_product_stock указать {«options-stock»:{«key»:«stock»,«type»:«float»,«value»:0}}
iWatchYouFromAfar
12 мая 2022, 14:26
0
1 — Nodejs фактически и есть веб-сервер, который запускается на сервере и обрабатывает JS в код нижнего уровня. Запустив такой веб-сервер, ты можешь ему передавать файлы с кодом и он (веб-сервер), их выполнит.

2 — Nodejs может исполнять код как только будет установлен в систему / на сервер. У него из коробки идет свой веб-сервер, если ты не хочешь использовать фреймворки на подобии Express. Такой веб сервер поднимается буквально в 5 строчек кода. Пример — github.com/LeCoupa/awesome-cheatsheets/blob/master/backend/node.js#L11.

3 — Я не слишком глубого знаком с работой PHP, но в рамках ноды — ты запускаешь веб-сервер, который слушает некоторый порт и этот порт проксируется через Nginx на нужный (например 80). Отбросив внутренний веб-сервер Nodejs, ты останешься без веб-сервера.
Александр Мельник
12 мая 2022, 13:11
0
значит не то смотрю.
Но в любом случае спасибо, потому что вы ответили на довольно важный в понимании работы nodejs вопрос. Можно я вкратце опишу, а вы скажите прав ли я в различиях в работе програмного обеспечения на php и nodejs
— nodejs в отличии от php не умеет работать в качестве модуля веб сервера или отдельного демона в системе, которому можно передать файл с кодом и он его выполнит. Как это мы делаем в php-fpm например. передаем код на некоторый сокет на котором работает интерпретатор php
— поэтому у нас в php и нет промежуточного понятия — сервер php. Ну формально он есть через команду php -S но он если и используется то только для разработки. Но nodejs может обрабатывать код только при наличии внутреннего сервера, вот почему и возникают exspress и им подобные?
— любое приложение на ноде (устал переключать раскладку) которое хочет работать с http запросам, должно запустить свой собственный сервер, настроенный на какой то порт, а запросы от клиента ему будет пересылать nginx слушающий 80 порт? Отбросить из этой цепочки внутренний сервер мы не можем? Как делаем в php? Когда у нас nginx просто перенаправляет все запросы в единую точку входа?
iWatchYouFromAfar
12 мая 2022, 12:57
0
Да почти в каждом платном и даже бесплатном, более менее нормальном уроке рассматривается деплой на продакшн.
iWatchYouFromAfar
12 мая 2022, 12:56
0
Я еще не использовал Nuxt 3 и не могу точно сказать про Nitro. Это не замена серверу Nginx, это замена серверу в среде Node.js.
Александр Мельник
12 мая 2022, 12:55
0
возможно в крупных компаниях есть отдельно веб разработчики и отдельно девопс инженеры, которые деплоят это все на сервера, поэтому стандартный веб разработчик даже не задумывается как в реальности его код будет работать, ему достаточно запустить какой то локальный веб сервер, поэтому нигде в виде уроках этот момент и не рассматривается.
Александр Мельник
12 мая 2022, 12:52
0
ну тоесть nginx все таки используется на продакшене?
Нет, не вопрос в том чтобы это запустить, я довольно хорошо разбираюсь в администрировании линукс серверов и смогу настроить и многодоменность и проксирование запросов.
Вопрос в том что это нигде не обсуждается разрабочтками ну и плюс наверное путаницей в терминологии. Вот Василий выше написал что nuxtjs разработал свой сервер, взамен express.
И у меня складывается впечатление, что именно на вот таких серверах (express, nitro) и работает все на продакшене без использования nginx, что кажется мне совершенно неверным решением.
evgeniy dovgani
12 мая 2022, 12:36
0
Все три сайта с такой заглючкой имеют один симптом — кирилица становится знаками вопроса…
хотя кодировка бд утф8_генерал_си. хз мучаюсь пока.

Знаю на счет рекомендации, но сайты простяцкие, пдоТулс, формит, ажахФорм. ну и Бабель.
Обновил первый, решил вопросы с бабелем, потом отключением симплсерч плагина, потом с нерабочим хуком «спам» у формита. и пошло поехало. но на 20-том сайте появились и такие проблемы.

сорри что не совсем канонично описал и написал :)
iWatchYouFromAfar
12 мая 2022, 12:36
0
Это уже тема не ноды, а настройки серверов на Nginx. Моя серия именно про работу с нодой в кач-ве бекенда (к слову, я цикл статей еще не завершил).

Не уверен что буду писать «how to», но могу дать очень полезный совет. Арендуй простой сервер, и попробуй развернуть там два сайта самостоятельно, инструкций по конфигурации серверов в инете масса, но ищи на английском языке лучше.

Запускаешь процессы ноды на разных портах, затем проксируешь их через nginx на нужный тебе порт, главное в директиве server_name указать нужный домен.

P.S.
Да и вообще, переход на JS с MODx и прочих CMS-ок дался мне не так просто, как первый сайт на том же WP или MODx. Не жди что придет кто-то и разжует тебе все, делай сам. Будет дольше, но тогда ты точно научишься и уже сам напишешь (а может и не напишешь) статью.
Andrew
12 мая 2022, 12:17
0
Там рекомендацию давали боевые проекты пока не обновлять) Но если найдете проблему и пути решения тогда лучше это дело на гит закинуть, чтобы пофиксить.
evgeniy dovgani
12 мая 2022, 11:53
0
ну как бе да, но их несколько десятков сайтов-копий с разным дизайном и везьде без особых проблем. кроме 4 случаев.

(хостинги разные)

будем выруливать как то :)
Futuris
12 мая 2022, 11:50
0
Было бы неплохо, конечно.
Александр Мельник
12 мая 2022, 11:45
0
Ну вот давайте попросим вместе автора этого поста поделиться такой информацией.
Как работает экспрес, уроки по ноде и прочее — в сети миллиарды.
А вот то как устроен сервер, на который это размещается. Как там устроено принятие запросов, кто слушает какие порты, как организовать два домена на одном сервере и так далее — вот этого почти нет.
Futuris
12 мая 2022, 11:29
0
Но я никогда не видел, как это деплоится на продакшен сервер и самое главное, как это там работает?
Если даже у вас это вызывает вопросы, представьте как у меня крыша кипит.)) Все эти
npm run dev
, и тоже думаю — а кто-бы показал, как это все на реальном хостинге и конкретном домене работает.))
Александр Мельник
12 мая 2022, 11:22
0
плюс расскажите пожалуйста как вы решаете проблему «первого запроса».
Ведь токен нужно передать на сервер при первом запросе.
— пользователь запускает браузер
— вводит адрес
— браузер получает ip сервера
— в браузере в локалстораже лежит access токен
Каким образом он будет передан в первом запросе, чтобы пользователь сразу был авторизован?
Как этот вопрос решаете вы?
Александр Мельник
12 мая 2022, 11:12
0
спасибо, я конечно же смотрел видео Ильи.
И он как раз тоже рассказывает о том, что jwt это небезопасный инструмент, тот случай когда технология стала популярной не за заслуги, а вопреки недостаткам.
Но мои знания теоретические, я еще нигде не использовал jwt в серьезных проектах.
По крайней мере украть куку через js гораздо сложнее (есть способы сделать ее недоступной) а вот доступ к
localstorage закрыть нельзя.
iWatchYouFromAfar
12 мая 2022, 11:04
0
А что по твоему идеально-безопасный механизм аутентификации пользователя? Тот же twitch.tv использует очень похожу на JWT аутентификацию, записывая и перезаписывая в localStorage разные данные.

JWT это технология, которая дает достаточно стабильный механизм аутентификации. А его доработку и безопасность уже дорабатывай сам. Программа минимум — делать refresh token.

Ну и если за твой сервис возьмуться специалисты, которые занимаются взломом за деньги, то готовься к сложностям.

Еще советую посмотреть видео Ильи Климова про JWT аутентификацию.