LINUX.ORG.RU

отговорите: (nodejs) vue.js + express + pg-promise + postgresql + docker

 ,


0

2

Хочу сделать небольшое и легконагруженное приложение - редактор словарей терминов. Есть список слов, можно искать слово. У слова есть карточка, которая своя для каждого пользователя, но можно смотреть чужие карточки. Карточка в формате markdown или что-то около того.

Клиента буду делать на vue.js, а сервер хочу на node.js . Да, меня уже отговаривали использовать node.js на стороне сервера. Но вдруг для такого простого проекта прокатит? В принципе, я готов всю тяжесть написать на pl/pgSQL, а на нодке - только тончайший интерфейс и собственно веб сервер. Соответственно, вопрос - как там с утечками памяти и прочими такими вот ужасами?

Т.е. вопрос состоит не в удобстве и не в производительности, а в качестве с т.з. надёжности.

Перемещено tailgunner из development

★★★★★

Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от den73

Ха ха я знаток? Я всего лишь один раз обмазался vue. Vue это только фронтенд, думаю что авторизацией и данными должен заниматься отдельный сервер api. Можно самому написать(заодно понять как оно работает, куки там всякие и т.п.), или взять какой нить любой готовый сервер-авторизации/веб-фреймворк.
А зависимости. Так сейчас вроде мода каждые несколько строк кода кидать в отдельный репозитарий.

Int0l ★★
()
Ответ на: комментарий от Int0l

авторизацией и данными должен заниматься отдельный сервер api.

Я так и делаю, но всё же клиент должен знать, залогин ли он, и отправлять токен, когда надо. Плюс при попытке доступа незалогиненного пользователя переходить на страницу логина. И ещё по идее нужно refresh token.

Так сейчас вроде мода каждые несколько строк кода кидать в отдельный репозитарий.

Ну это же дыры в безопасности, особенно, если написано, что версия latest. Как-то странно выглядит проект по авторизации на 50 мб сорсов :)

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

В общем, я всё ближе и ближе к работающему сайту, и чем я ближе, тем мне становится хуже морально. Как тот лось из анекдота. Надо было брать PHP :(

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

Как-то странно выглядит проект по авторизации на 50 мб сорсов

Привыкай, это дивный новый мир npm. Сайтик с зависимостями на 600 мб как тебе? Хипсторов это нисколько не смущает.

anonymous
()
Ответ на: комментарий от den73

Так возьми PHP для серевера авторизации. )))
По мне так вообще пофоигу какой язык, главное что-бы не надо было долго компилировать.
А лучше конечно быть хипстером и обмазаться чем нибудь новеньким.
Еще сырым.
А то ведь брать технологию которая была в моде 3 месяца назад как то не по хипстерски.
Лучше что нибудь свое придумать. И главное суметь донести до других почему это технология лучше. Твой код на русском языке отличная идея.
Теперь осталось убедить других почему это круто .
Например: Почему я пишу на русском. Или семантика русского языка, позволяет сознанию быстрее перестраиваться под метамодель архитектуры и лучше отражает скрытые возможности ее оптимизации . И все ты в тренде !!!

Int0l ★★
()
Последнее исправление: Int0l (всего исправлений: 2)
Ответ на: комментарий от Int0l

Нда, убедить других, почему это круто - это самое сложное :)

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

Вот же ты ССЗБ. Можно понять маргинальные закидоны когда человек не отягощен нуждой. Вроде и хочешь цинично зарабатывать, но выбираешь самый лютый треш, чтобы его превозмогать. Хотя можно взять дотнет и не напрягаясь накидывать вебню мышкой в студии попивая чаек. Или пхп, где все уже тыщу раз продумали за тебя, только редактор в зубы м вперед. Нет, мы русские хотим страдать.

anonymous
()
Ответ на: комментарий от anonymous

Сегодня дошёл до https://github.com/nuxt/nuxt.js/issues/2680 Ты прав наверное, но каждый вечер дня, когда я плотно занимаюсь этим вуем, я вижу, что я немного продвинулся, а надо было продвинутся втрое дальше. И я думаю, что завтра я всё брошу и начну переделывать на PHP. Но наутро думаю, что уже сделано много и почему бы не продолжить.

Мне осталось, на самом деле, только одолеть авторизацию и деплой. Авторизацию я одолел наполовину и дошёл до каких-то сюрреальных глюков - где-то у них там токен по дороге теряется. Но вроде они как-то решили эту фигню.

Есть ещё один, вроде бы более простой вариант, на базе https://ru.nuxtjs.org/examples/auth-routes/

den73 ★★★★★
() автор топика
Ответ на: комментарий от Int0l

Именно в такой связке вуй и юзают. До Дэна все никак не дойдет, что ноду на бэкенде мало кто держит. В любом случае фулстек без знания PHP это смешно.

anonymous
()
Ответ на: комментарий от den73

Авторизацию я одолел наполовину и дошёл до каких-то сюрреальных глюков - где-то у них там токен по дороге теряется. Но вроде они как-то решили эту фигню.

Как то решили? Лол. С этой парашей одно решение: все переписать. Рефакторить это принципиально невозможно, дебажить очень трудно. Именно поэтому «в этом вебе столько всего».

anonymous
()
Ответ на: комментарий от anonymous

Блин! Дошло до меня всё давно. Но мне и так приходится учить слишком много вещей одновременно. Поэтому PHP подождёт. И, кроме того, проблемы у самого вуя - токен не отправляется с клиента. С сервером никаких проблем нет. Другое дело - можно ли обойтись без этих фреймворков вообще. Думаю, это всё равно приведёт к написанию ещё одного, который будет никому, кроме меня, не нужен. Так пусть будет вуй. Учусь его дебажить потихоньку.

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

Можно обойтись без фреймворков и даже вовсе без жаваскрипта, но на галере тебя не поймут.

anonymous
()
Ответ на: комментарий от den73

А я чет даже норм доку не нашел по этому модулю.
Как и что он должен делать мне не понятно.
Я так понимаю он из nuxt делает сервер авторизации?

Int0l ★★
()
Последнее исправление: Int0l (всего исправлений: 1)
Ответ на: комментарий от Int0l

Вместо доки там пример, причём кривой. Поскольку $auth.token отсутствует, а вместо него нужно брать $auth.GetToken()

Я так понимаю он из nuxt делает сервер авторизации?

Ну, делает - это громко сказать. Там пароль 123 прибит гвоздями, и пример, как сделать свой защищённый маршрут, я долго составлял сам (учитывая моё чайничество в вебе в целом, а не только в nuxt). Самое главное - я не вполне понимаю, где тут отдельный сервер и отдельный клиент. Запускается только одно приложение. Поэтому я очень быстро сделал отдельный сервер на express, куда вынес «серверную» часть этого примера. а «клиентская» теперь всего лишь отвечает за переадресацию, получает токен, хранит его и отправляет в API.

Они используют jwt. Но стандартом для jwt является использование двух токенов - рабочего и обновляющего. Этого там нет.

Также они умеют авторизоваться с помощью сторонних сервисов.

На мой взгляд это пример из серии «а у нас тоже что-то на эту тему есть», до реального приложения там далеко. Наверное, для тех, кто уже имеет большой опыт, понятно, что дальше делать, а мне - непонятно.

Теперь хочу выкинуть jwt и сделать что-то более традиционное с сессиями, нашёл статью на эту тему.

den73 ★★★★★
() автор топика
Ответ на: комментарий от Int0l

Там есть файл examples/api/auth.js, к-рый представляет из себя серверную часть. В какой момент он запускается, я не знаю. Видимо, в примере чисто для удобства проверки клиент и сервер объединили в один процесс. Т.е. это не заготовка приложения, а просто demo.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 2)

Вообще, изначально захотел строллевать, особенно после того примера кода что увидел, но потом все же решил написать серьезно, вот на скотском серьезе:

0) PHP, Wordpress, и всё. Работа на русский рынок, говнокодя говнокод. Хотя последние PHP и WP не так уж и плохи. Потом можно еще джумлу какую-нибудь выучить или что-нибудь в этом роде. Из фронта - jQuery(не бог весть какая сложная штука), html, css3(вот это особенно важно). Можно даже работать в одиночку. Можно даже писать кириллицей, всем будет, как правило, насрать. У меня друг примерно так работает, правда без кириллицы, и получает 150000, на фрилансе - на жизнь хватает. Правда пашет как конь, не особо растекаясь мыслю по древу и тем более насчет лиспов и архитектуры. Топовых зарплат же, и более адекватных/интересных инструментов и задач у тебя не будет, и по следующим причинам:

1) В РФ и бСССР, на внутреннем рынке, денег тупо нет. И очень любят обманывать и воровать. Соответственно, все заказчики(и на тех же галерах, и тем более напрямую), нормальные - из стран золотого миллиарда. А при работе с ними, есть некоторая специфика, несовместимая с твоим подходом к разработке и к жизни вообще(это я уж не говорю про шизофренические загоны на тему того что беднюю Россию хотят захватить жыды и масоны и изничтожить русский язык):

2) Гибкость, вообще во всем, как в мышлении, так и в выборе инструментов, так и в подходе к процессам разработки (agile, как «настоящий agile» так и «agile который внедряли» - хотя это две большие разницы), так и что самое главное, в разработке в команде и в общении с людьми вообще, а у тебя:

3) У тебя с коммуникативными навыками огромнейшие, просто невероятные проблемы, и со способностью излагать мысли, и со способностью вообще нормально общаться(ну будьте ж людьми ребята, все ж мы люди, нормально же общались!), не знаю, почему, но судя по тому, что:

4) У тебя, видимо, очень серьезные проблемы с головой, и это без шуток. И вот с этого пункта я рекомендую особенно настоятельно задуматься, и начать его решать. 45 лет не отмазка. Что бы ни было проблемой - алкоголизм, эпилепсия, или какая-то, возможно, не заметная в зеркало, психиатрия - в любом случае рекомендую наведаться к врачу, например к частному психиатру.

Это реальность. И тебе ее может подтвердить чуть не любой помимо меня. Если у тебя реальность другая, советую начать с пункта 4.

lovesan ★★
()
Ответ на: комментарий от anonymous

Уже более 7 лет работаю исключительно за рубеж во фуллстек. Последний раз видел php на первых курсах института. Сейчас мне 31. Пишу на python, JavaScript, Swift, C. Это в рашке тока php во все поля, в нормальных странах пишут 60% бэкенда на Java, 30% на питон, а остальные 10% на чём придётся, и да, ноды полно, и нода ничем не хуже php, скорее, наоборот, софта море в npm, и все самые передовые вещи пишут исключительно под ноду и javascript.

menangen ★★★★★
()
Ответ на: комментарий от lovesan

Ты-то, конечно, сейчас демонстрируешь нормальное общение, психиатр-телепат. Придётся тебе ещё побыть в игноре.

den73 ★★★★★
() автор топика
Ответ на: комментарий от menangen

остальные 10% на чём придётся

Прекрасно, значит Дэну придется перебиваться в рамках 10% или учить питон хотя бы. Я то ему советовал учитывая российские реалии, а не фантазии фрилансеров. И ты лукавишь конечно про PHP, работы на нем вагон, ты просто его избегаешь, и потому тебе кажется что его нет.

anonymous
()
Ответ на: комментарий от anonymous

Да это очередной фантазер, мамкин фрилансер 300к/сек. По факту в вебе рулит и педалит пыхоплеяда(протопых, собсно пых, гвидопых, джапопых). И по сей день, и еще походу, во веки веков будет. По большей части. Минимум процентов 40 вообще всего веба, если не больше - тупо на собсно говоря пыхе. По меньшей части - где-то пополам - жаба и дуднет. Совсем в микродозах присутствует Го. Ноды может чуть побольше, чем Го, но не уверен. Скалы, лиспов, хаскелей и прочего - следовые количества.

lovesan ★★
()
Ответ на: комментарий от lovesan

Денис немножко поехавший хотя бы потому, что упорно игнорит PHP, который в его ситуации - то, что доктор прописал. Уже две недели героически пишет бэкенд на vue (само название вопиет). Ну странный же парень. До этого 2 года писал бейсик на кириллице, для чего, для кого? Наверно ты прав насчет психики.

anonymous
()
Ответ на: комментарий от lovesan

Ты, видимо, мало на гитхабе тусишь. Ты открой, зарегься. И посмотри, кто там и чего пишет на php. Много будешь удивляться. «В мире» это как раз гитхаб с битбакетом, а не всякие фриланс.ру с прочим русским бизнесом а-ля «сваляли по-быстрей и по-дешевле и в продакшен».

menangen ★★★★★
()
Ответ на: комментарий от den73

У ноды нет конкурентов. Скорость высокая. Софта море. Один язык на 2 стороны, язык, в принципе, простой и ОЧЕНЬ гибкий. Вхождение лёгкое. Крутые проекты стартовать легко. Расширения на C++ для v8, node писать вполне, гайды нормальные, читай всякие node-sass будут развиваться в опенсорсе годами. Vue, кстати, самый быстро растущий и фичастый фреймворк для морд. Короче, всё в ажуре.

menangen ★★★★★
()
Ответ на: комментарий от menangen

По твоей логике еще не так давно руби тотально доминировал на рынке, ведь на гитхабе каждый второй проект был на рубях. А пхп вовсе никогда не существовало выходит. То, что половина интернета на пхп, досадное недоразумение. Конечно Дэну надо налегать на ноду, он целую одну вакансию нашел уже в Москве.

anonymous
()
Ответ на: комментарий от anonymous

80% сайтов в инете на Wordpress, и что, теперь учить Wordpress? Наоборот, надо лезть в узкие и сложные ниши, а не конкурировать с 1000 макак.

menangen ★★★★★
()
Ответ на: комментарий от menangen

Ты о чем вообще. Мужику 45, семья сидит голодная. Какие еще ниши, тут нужно быстро и не особо напрягаясь заработать деньжат на поддержание штанов. Конкуренция с тысячами макак это ты хорошо сказал про жаваскрипт.

anonymous
()
Ответ на: комментарий от anonymous

Ты о чём пишешь - это вообще не ко мне, какие-то идеи «быстрая поддержка штанов» ему идти в погрузку диванов проще, чем php макак перекричать.

menangen ★★★★★
()
Ответ на: комментарий от lovesan

Чё-то я не понимаю логики, по которой ЛОР показывает иногда все сообщения, включая игнорируемые. То ли это зависит от того, на какое уведомление я нажимаю. Слушай, ну почему ты думаешь, что у тебя у самого-то всё в порядке? Я у тебя два раза спрашивал обоснования, почему я не понимаю систему типов SBCL. Ты ни разу не удосужился. Как это соотносится с твоим «нормальные люди и общаемся»? И не у тебя ли серьёзные проблемы с алкоголем? Вот, почитай: http://www.yaplakal.com/forum1/topic1744969.html

den73 ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Не-не, ещё не настолько всё плохо. Ещё месяц-два могу позволить поучиться. И про ниши menangen правильно сказал. Просто с хипстотой высок риск, что хайп сдуется и вместо ниши останется дырка от бублика. Какое оно - я уже понял: всё сырое, быстро протухает, уязвимости, бредовые идеи, готовых образцов мало, везде нужно верить в светлое завтра, иначе очевидно, что технологии неюзабельны. Т.е. о том, чтобы решить проблемы для людей, речь не идёт. Производительность труда слишком низкая - для этого пых. Речь идёт лишь о том, чтобы вписаться в снятие пенок с хайпа :) Вот сам это написал и стало мне противно на себя смотреть :)

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

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от anonymous

Ты это... как бы... https://rabota.yandex.ru/search?text=node.js&rid=225&salary_from=1600...

меня такой рынок более чем устраивает :) А по пересечению ноды и vue - действительно, вакансии ЦЕЛЫХ две. Если верить в то, что вуй растёт, то дальше должно стать лучше.

И кстати, мне кажется, что с ES6 жизнь в мире JS должна резко улучшиться и в этом смысле я пришёл сюда очень вовремя.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от den73

Речь идёт лишь о том, чтобы вписаться в снятие пенок с хайпа

Возьми машину времени, сгоняй в 2010. Боюсь, что сейчас жаваскрипт уже на спаде, даже по гитхабу тренд нисходящий (можешь поискать картинки). Многие купились, внедрили, и разочаровались. Это я про бэкенд на ноде. Не выходит каменный цветок, а именно один универсальный инструмент и одна команда кодеров на обе стороны. Специфика сильно отличается. Люди хотят что-то попроще и понадежнее на сервере, отсюда интерес к Го. И многие уже сообразили, что PHP7 не так уж и плох. А еще есть старый добрый питон. Ну очень сильно нужно хипстануться, чтобы притащить жс на сервер.

anonymous
()
Ответ на: комментарий от anonymous

Всякий там вуй - это фронтенд. Но требует знания ноды, ибо собирается ей. Не знаю, мне кажется, что в моём нынешнем проекте словаря бизнес-логика составляет ничтожную долю всей трудоёмкости. Проще написать на ноде, чем тащить другие технологии со своей экосистемой, к-рую нужно учить. А при SSR ноду и в продакшен придётся развернуть. Другое дело - есть ли готовые блоки функционала. На vue я не нашёл нормального образца для изготовления защищённых страница на сайте. Приходится велосипедить. На PHP наверняка уже миллион.

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

с ES6 жизнь

Текущий стандарт ES8, скоро примут ES9

anonymous
()
Ответ на: комментарий от den73

Но требует знания ноды, ибо собирается ей

Ты путаешь npm и ноду. Это не одно и то же.

anonymous
()
Ответ на: комментарий от leprikon

Ну так в примере-то её нет, я сам прикручивал. И далее, минимальный на сегодня блок защищённых страниц - это регистрация нового пользователя, отправка E-mail для подтверждения, принятие E-mail, подтверждение, а также кнопочка «запомнить меня» под логином, устаревание сессии. Без любого из этих элементов приложение неполноценно. И вот, во втором десятилетии XXI века, я сижу и это велосипедю.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от den73

О! Давно я не заглядывал в этот чятик.

Расскажи кратенько что ты там оседлал и в каком виде и состоянии твой проектик? Лень читать кучу страниц.

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

Заставил всех поверить в самоподписанный сертификат, теперь могу отлаживаться с https. Для деплоя возьму сертификат у провайдера от letsencrypt. Сделал добавление пользователя (пока только через скрипт на node, но зато пароли солёные, как положено).

Аутентификация пока через jwt, хочу выпилить и заменить на сессии express. БД приделана через pg-promise, осилил тамошние шаблоны запросов, но это было ещё при тебе.

При неверном логине показывается ошибка (в примере auth-module-2 это «предоставили читателю»), хотя я всё грубо сломал, а потом RTFM и оказалось, что там есть на это штатный callback.

Ну и соответственно, работают запросы из vue к API для чтения списка статей и для записи одной статьи.

Осилил отладку ноды под Linux с помощью SIGUSR1. Слегка освоил vs code.

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

Ну ладно, вродь нормально. Колупайся пока. Всеравно к пыху (или другому бекенд языку) придешь.

deep-purple ★★★★★
()
Ответ на: комментарий от den73

сижу и это велосипедю

А как же «море софта»? От чего там ломится гитхаб? Дай угадаю, от хелловорлдов и костылей для самого жаваскрипта (язык без стандартной либы это клёво).

anonymous
()
Ответ на: комментарий от den73

Так Vue то тут причем? Хочешь готовое. берешь фреймворк и прикручивается его к vue или наоборот

leprikon
()
Ответ на: комментарий от anonymous

Все там есть. Просто он почему-то считает. Что весь бэкенд должен уже быть прикручен к vue из коробки. И авторизация и даже https.

leprikon
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.