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

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 аутентификацию.
iWatchYouFromAfar
12 мая 2022, 10:52
+1
Отвечаю на вопрос про Express. Изучать его и написать на нем пару проектов — маст хев, т.к. это что-то вроде флагмана в мире бекенда на JS, плюс тот же Nest из коробки использует под капотом именно Express. Потыкав пальцем в Express, уже сам поймешь куда тебе двигаться дальше.

Неидеальности Express заключается минимум в его архитектуре, которая с ростом проекта становится сложночитаемой и сложноподдерживаемой. Ты это сам поймешь когда попробуешь сделать нечто большее чем просто блог.
Andrew
12 мая 2022, 10:41
0
Обновили боевой проект?
Александр Мельник
12 мая 2022, 09:41
0
спасибо.
Но в инете много информации по этому вопросу. Странно задавать его здесь.
Но мы ведь с вами как раз и в инете) На сайте который представляет из себя форум, на котором обсуждаются технологии веб разработки и на котором находятся много умных людей, поэтому задать вопрос здесь — мне кажется очень разумным.
Я вот например впервые в жизни слышу про OpenID Connect. И ничего подобного по запросу — межсерверная авторизация мне не попадалось, а вы раз — и подсказали.
Вы правы, я жутко люблю изобретать велосипеды, а не использовать чьи то готовые решения. Понимаю, что в 2022 году это неправильный подход, но ничего поделать не могу. Для меня программирование это прежде всего изобретательство и наслаждение от поиска решения, а когда — установи вот эту библиотеку и скопипасти со стековерфлов такой то код — то это наоборот боль. Но это мои тараканы)