Добрый день!
Меня изрядно поддостал Express, из-за того что там нужно почти все делать руками (это несомненно и мощь, но не в текущем случае).
Сейчас я разрабатываю сервис, который по AMQP крутит довольно долгие задачи, и мне нужно ко всему этому прикрутить Web-морду.
Знаю и всем сердцем люблю Express (особенно в связке с Exa), но сейчас он мне кажется избыточным и долгим в разработке.
Появилась в потребности, в пусть и менее гибком, но быстром с точки зрения разработки фреймворке.
Критериями служат:
* ES6/ES7 синтаксис, с async/await (ну или хотя-бы CO, которые спокойно заменяются ES7 async/await).
* Возможность выбрать базу данных. MongoDB знаю и люблю, но возможно от нее придется отказаться в угоду SQL.
* Не привязанный к ванильному JS. Со временем есть желание перевести проект на TS (я понимаю, что это и так можно сделать, но хотелось бы иметь уже заранее подготовленные тайпинги).
* Наличие хотя-бы какой-никакой админки.
* Возможность разбивать пользователей по ролям.
* Возможность генерировать REST API карты, для удобства и наглядности.
* Уже встроенные решения для пользовательских сессий, XSS (и смежных) защит, авторизации.
* Открытость для расширений и пользовательских плагинов.
P.s. смотрел на Sails, но он еще не зарелизен, да и вообще довольно специфичен. Слышал о Meteor, но там нужно слишком много учить заново, а для текущего прототипа в нерабочее время, это слишком.
Даже стало самому интересно существует ли что-то подобное на nodejs, а то ведь зачем оно такое..
Но как и все в мире js если и есть, то полный шлак с тысячью багов, которые Вы найдете уже тысячным и как и другим девятьсот девяноста девяти Вам будет любезно предложено устранить баг самому или написать для них тест. Короче кто-то пиарится и продает уроки на технологию которую допишут только через десять лет какие-то добровольцы, которые за уроки и заплатили.
copal: а можно примеры, по вашему мнению "шлаковых", фреймворков для Node, и указание на их баги?
Или по вашему мнению в тех же Rails, Django, Laravel багов вообще нет, а шлаковых и компромиссных решений тем более?
Касаемо того, что "править баги самому" , т.е. по вашему мнению найди вы ошибку в Python библиотеке (которую не поддерживают серьезные ынтерпрайзные дядьки), они ринутся ее тут же исправлять? Нет. Они так же скажут вам, какой вы молодец, и что вы можете ее исправить, раз знаете, и тестиков в придачу напишите.
И если вы захотите возразить, то просто вспомните Python, когда в последний Гвидо и сотоварищи не посылали вас самих исправлять ошибки? Или вспомните как мило в Py приходили декораторы.
HoHsi: ну так по Вашему можно от воспоминаний о палаче нужно добровольно голову под топор положить. Если Вас все и везде устраивает, то какого фига Вы такой требовательный? И если Вы ведун, который тратит свое время на работу за которую денег не получаете, то это Ваше личное, мазохисткое право, право вступить в добровольное рабство. Ждите тысячу ответов, а потом потратьте тысячу дней на отладку кода, за который кто-то кто сидит в теплом кабинете с видом на море, скажет Вам спасибо и положит ещё один миллион долларов в карман. Зачем рабство когда Вы сами в петлю лезете.
copal: очень странный комментарий. Вы ни ответили ни на один из вопросов.
И если Вы ведун, который тратит свое время на работу за которую денег не получаете
Чем обосновано это умозаключение?
Ждите тысячу ответов, а потом потратьте тысячу дней на отладку кода, за который кто-то кто сидит в теплом кабинете с видом на море, скажет Вам спасибо и положит ещё один миллион долларов в карман
Тем более мне непонятно о чем вы говорите в этом предложение. Какие миллионы? какие доллары? Кто положит? С чего вы вообще взяли, что я с кем-то конкурирую или работаю на кого-то?
Что о требования, то они ведь ни разу не адресованы лично кому-то, это лишь пожелания, которые были бы
большим плюсом для фреймворка.
HoHsi: Вы в предыдущем сообщении сто раз повторили что доделывать за кем-то это вполне нормально. А я вот и говорю что Вы повелись соглашаетесь работать на кого-то за бесплатно.
copal: дык, по сути то дела, все Open-source проекты ни чем вам не обязаны, как и вы им. Если вам не хочется что-то переделывать за ними, вы можете отказаться или выбрать другое решение.
У их авторов тоже есть работа, и они имеют полное моральное право попросить вас лично исправить этот баг, раз вы уже знаете про него, и можете понимать как его исправить.
Ни кто не платил за все (ну почти все) платформы, фреймворки и библиотеки их авторам. Вы можете свободно использовать Node, Python, Rails. Вы не вступали ни в какие клиентские отношения с ними, так что если это вас не устраивает, то просто подождите, или помогите их авторам, как и они помогли вам, дав пользоваться своим продуктом бесплатно
Юрий: сокеты есть, желание писать на PHP нет. Это скорее личное, чем объективная причина. Но если даже и отказываться от Node, то в сторону Django или Rails. ИМХО
HoHsi: ну Вы полный раб... Как это не платят? Возьмите angular2, который делают уже два года и все ещё не сделали. Зато за два года было продано билетов на различные конференции, на которых на картинках из бесплатного поинта Вам рассказывали как уже совсем скоро будет хорошо, столько что можно было две индии нанять чтобы его сделали с нуля. И это относится к любой конференции на которые приглашают выступить, естественно не за очень бесплатно, кого? Ну естественно тех, кто что-то сделал модное. Вы как олень туда сходили, деньги им заплатили, а они по десять лет делают одну версию и не сделав её, переходят сразу делать другую и опять по новой. И если они целыми днями рассказывают за деньги как все хорошо, то кто им делать это будет? ну вот Вы лошара-то и будите делать. Вы обычный бесплатный раб из третьесортной страны. Но Вы не простой раб, ведь Вам как и всем другим можно поучаствовать в разработки любого кода, хоть самого MicroSoft, у которых вообще нет денег и кроме как на Вашу помощь им рассчитывать не на кого. вперед, идите и работайте и возможно Вас спасут от замерзания.
copal: вы очень странно манипулируете своими детскими комплексами, и перекладываете их на других.
Кто вас заставлял идти на конференции? Кто заставлял использовать ng2? Кому вы конкретно заплатили, и он вас обманул?
О каких третьесортных странах вы говорите? Какой из моих вопросов зажег ваш поясничный очаг?
Вы отвечаете, будто я вам пытаюсь втюхать какой-то пылесос из телемагазина.
Но если все так тщетно, и вокруг одно дерьмо, на чем лично вы пишите, и какие наработки используете?
HoHsi: да, старческого маразма у меня нет точно. Манипулировать пытаетесь Вы тонко оскорбляя меня то и дело, а я пытаюсь ответить Вам на Ваши то и дело возникающие вопросы, которые вынуждают меня, как человека не склонного к "пошел нафиг" потакать Вашему возрастному состоянию. И я отвечаю так, как-будто Вы пытаетесь оправдать тех, кто пытался меня подпречь в отладку за них их распиареного, но никчемного кода. Говорить что это был за код, я не буду, так как пиар может быть и черный. Да и Вам это все равно ничего не скажет, раз Вы такие глупые вопросы задаете, пытаясь умничать, но при этом в отношении nodejs. И я пишу на полнейшем дерьме, от которого уже хочется заорать, но поделать ничего не могу и приходится все дальше уходить от того, что меня заманило в вэб. Это вот как тысяча человек обсуждают реакт и приложении на нем, но спроси кто какие компоненты под него использует, сразу все затихают, так как пишут на нем все только по вечерам в своё удовольствие, ну или в огромных компаниях где для каждого проекта все с нуля создается не малой группой людей.
Это я к тому, что Вам лучше сразу самому с нуля начать все делать инструментами, которые развиваются с первого дня, а это только экспресс + monga и не пытаться слушать советов тех, кто не пишет огромных проектов на nodejs, так как эта технология только для соккетов и монги.
Манипулировать пытаетесь Вы тонко оскорбляя меня то и дело
до предыдущего ответа, я не пытался вас оскорбить ни разу. Я лишь просил примеры, от которых вы уходили, подобно "реакт и приложении на нем, но спроси кто какие компоненты под него использует, сразу все затихают"
И я пишу на полнейшем дерьме, от которого уже хочется заорать, но поделать ничего не могу и приходится все дальше уходить от того, что меня заманило в вэб
Хорошо, а на чем бы вы хотели писать, и какие стеки хотели бы использовать?
экспресс + monga и не пытаться слушать советов тех, кто не пишет огромных проектов на nodejs, так как эта технология только для соккетов и монги.
А где я сказал, что не люблю Mongo, Express и тем более Node? Я это упомянул еще в своем вопросе. Но на текущий момент Express не дает мне некоторых вещей из коробки (я их могу и сам реализовать, и подключить пакетами, но считаю что это излишне в моем проекте.).
Монга же прекрасна всем, но связывание не ее конек.
HoHsi: тогда Вам нужно ещё один сервер поднимать, который будет предоставлять доступ к api с интересующей Вас бд и это будет в стиле nodejs. А примеров не будет, так как все куда не залезь везде одно и тоже, но это я уже Вам в самом первом монологе объяснил. И раз Вам пакет установить напряжно, то лучше не начинайте ничего делать на стеке *js. И ещё раз по поводу советов - лично я не очу советовать то, от чего сам не в восторге.
тогда Вам нужно ещё один сервер поднимать, который будет предоставлять доступ к api с интересующей Вас бд и это будет в стиле nodejs.
Зачем мне разбивать приложение? Я наоборот пытаюсь все упростить, что-бы на стороне Web-морды было как меньше кода, а сосредоточиться на самих воркерах.
И ещё раз по поводу советов - лично я не очу советовать то, от чего сам не в восторге.
Ну т.е. вы вообще ничего не используете, и ни на чем не пишите? В целом идеальный подход
Попробуйте Total.js, уже достаточно долгое время работаю с этим фреймворком. Очень многое уже есть в коробке и покрывает на 100% необходимые задачи. Автор достаточно оперативно решает проблемы, если такие находятся. Единственный минус перед express, это примерно процентов на 30-40% меньше производительность в сравнении с тем же express (проводил нагрузочное тестирование Яндекс.Танком на версии 1.9), с другой стороны если на express реализовать весь тот же функционал, то думаю они сравняются.
p.s. На этом фреймворке уже год несколько проектов в продакшене, полет стабильный.
Посмотрите в сторону loopback. https://github.com/strongloop/loopback
Вот уж кто позволит вам на лету менять базки.
И админка у него есть.
Обна беда - он все-таки больше позицианирует себя как REST.
Возможность выбрать базу данных. MongoDB знаю и люблю, но возможно от нее придется отказаться в угоду SQL.
* Наличие хотя-бы какой-никакой админки.
* Возможность разбивать пользователей по ролям.
* Возможность генерировать REST API карты, для удобства и наглядности.
* Уже встроенные решения для пользовательских сессий, XSS (и смежных) защит, авторизации.
* Открытость для расширений и пользовательских плагинов.
Похоже, вам нужен django. В node-фреймворках очень плохо с админками, структурированными пользователями и прочими коробочными решениями (остальное можно достичь разными модулями)
HoHsi Mean.js и Mean.io генирурует сразу хоть что-то, то там увы к много и ангуляру привязано, что не есть гуд. Если найдешь какое-то решение, отпиши сюда
Skrolea: возьмите express + mongo + <ваш любимый фронтенд фреймворк>. Mean ни кто и не привязывал к A, M или к E. Это просто псевдо-термин придуманный фронтендчиками, которым бек нужен постольку, поскольку.
Я работал на проекте, где мы использовали Express + Postresql + React и никто ничего не привязывал. Уже давно каждую часть можно абстрагировать на 10 раз. К тому же фронтенд от бекенда.