Что лучше для организации REST API (с хранилищем MongoDB)? Nodejs или PHP?
На PHP я пишу уже давно, с ним всё ясно, а вот с Nodejs познакомился недавно и он мне понравился.
Меня интересуют аргументированные факты, подводные камни, особенности и т.п. при работе с Nodejs в сравнении с PHP. Так же интересует вопрос производительности Nodejs и инструменты для более удобной разработки (расширения для SublimeText и прочие утилиты).
P.S.: В Nodejs понравилось работать с MongoDB через mongoose. Кода получается меньше (на Restify + Mongoose), чем с любым фреймворком на PHP с которыми я работал (Yii2, Phalcon и ещё несколько).
для RestAPI простенькой норм. По производительности - жрет больше памяти чем PHP но зато быстрее работает и позволяет поднять RPS. Так же неплохой практикой было бы поднятие нескольких инатансов приложения (по одному на ядро и оставить одно ядро про запас) и проксировать запросы через nginx на эти инстансы.
Для монги + RestAPI вполне оправданно. Если брать еще какой фреймворк типа express или чего более специфичное, то проблем особо не должно быть. К сожалению (или к счастью) монгу н продакшене я пробовал лишь однажды, расстроился и забил. На node.js обычно держу демоны для рассылки нотификаций (APNS/GCM/WebSockets).
Думаю, что поднятие нескольких инстансов принципиальный момент, чтобы тягаться с php, поскольку воркеры php-fpm утилизируют все ядра сервера.
Ещё один момент: если много бизнес-логики или интенсивные вычисления внутри обработки запроса, то php-воркеры также будут предпочтительнее, поскольку в случае node.js будет тормозить весь инстанс.
Думаю, для работы с Mongo лучше подойдет NodeJS. RESTful API легко поднять с помощью Sails.js. С ним кода будет еще меньше ;) Что касается производительности - с Node.js никогда проблем не было, а вот на PHP в свое время наелся. Сейчас я бы выбрал Node.
Почему-то когда я искал модуль для REST API мне на глаза не попался ни один совет использовать sails.is, за-то было много советов использовать express.is или restify
@zBit, ну, Express - это веб сервер, а не фреймворк для построения REST API. Restify тоже достаточно низкоуровневый. Большой API, мне кажется, на нем будет поддерживать достаточно сложно. На мой взгляд, лучшая платформа для построения RESTful API на данный момент - RoR. Sails.js наиболее близок к нему по идеологии. Но это лично мое мнение. Вот еще, кстати, статья на хабре есть по теме: habrahabr.ru/post/222259
Уже начали делать)))
Удобная вещь, да, особенно с yo генераторами. Там фулстек для Node.js + MongoDB + Mongoose + Angular.js. А главное - с ним всё быстро делается)