Рельсы или node.js для Restful API

#mysql #ruby-on-rails #api #rest #node.js

#mysql #ruby-on-rails #API #отдых #node.js

Вопрос:

У меня есть существующий веб-сайт, написанный на ASP.net , я недавно перешел на Mac на полный рабочий день (с Windows в Boot Camp), и мне нужно написать общедоступный API для доступа к данным MySQL моего сайта. В первую очередь я хочу использовать API для создания приложения для iOS.

Я заинтересован в изучении либо Ruby on Rails, либо Node.js , Я еще не использовал ни один из них.

Какой язык мне было бы лучше изучить?

Комментарии:

1. Что вы хотите сделать на стороне сервера?

2. Не уверен, что вы имеете в виду. У меня есть доступ как к хостингу Windows, так и к Linux, поэтому любой из них работает для операционной системы.

3. @spaetzel означает именно это — это зависит от того, что вам на самом деле нужно для этого — отсюда мое «не лучше, только более подходящее». Это очень разные звери, эти две вещи, о которых вы спрашиваете.

Ответ №1:

Rails — это относительно зрелый веб-фреймворк, основанный на Ruby и предназначенный для обработки сохраняемости данных с отображением объектов в серверной части реляционной базы данных.

Node.js является намного более новым на сцене и, в отличие от Rails, представляет собой более простой пакет, который позволяет использовать серверные приложения Javascript благодаря довольно жесткому HTTP (S) API. Приложения узлов по своей природе управляются событиями, что может быть или не быть идеальным для вашего приложения.

Поскольку кажется, что вам понадобится сохранение данных (вы упомянули доступ к данным MySQL …), С Rails может быть проще начать работу, поскольку он поставляется в комплекте со всем, что вам нужно в этом отношении, и предназначен для облегчения такого рода приложений.

Если вам на самом деле не нужна сохраняемость реляционных данных, Node, вероятно, является лучшим выбором, поскольку он остается в стороне от вас и позволяет вам решать, как обращаться с вещами. Важно отметить, что Node — это гораздо более простой «фреймворк», чем Rails — если вы хотите что-то немного более высокоуровневое, но все же более легкое, чем Rails, которое работает на Node, express — хорошее место для начала.

Тем не менее, если вы хотите попробовать Node (признаюсь: это очень весело!), Вполне возможно получить доступ к MySQL приятным, управляемым событиями (неблокирующим) способом. Вот два модуля, которые будут полезны:

Комментарии:

1. Я думаю, что, вероятно, пойду с Node.js . 99% моих запросов будут доступны только для чтения, поэтому я не слишком беспокоюсь о сохраняемости данных. И это действительно выглядит забавно. Спасибо за ссылку на express, я тоже это проверю.

2. Мне было бы интересно услышать, как это работает для вас; когда у вас что-то получится, вы должны обновить свой вопрос комментариями о своем опыте использования этих модулей MySQL. Приветствия!

Ответ №2:

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

На чем бы вы предпочли разрабатывать, на Ruby (Rails) или JavaScript (node.js )?

Хотели бы вы перенести эти знания на другую работу без времени наращивания (Rails)?

Хотели бы вы узнать что-то более эзотерическое, основанное на событиях (node.js )? (У Ruby есть машина событий, но IMO node.js заходит немного дальше.)

Комментарии:

1. @Raynos достаточно справедливо; окружающая среда? Библиотека?

2. @Raynos Хех, немного многословно, но очень точно 😉

Ответ №3:

Итак, это новое приложение — всего лишь посредник между вашим ASP.NET вещь и другие ваши клиенты.

В этом случае полностью используйте node. Узел отлично подходит в качестве сетевого клея. Узел отлично масштабируется с приложениями, связанными с вводом-выводом (т. Е. Является сетевым посредником).

Если вы собираетесь использовать node, то вы, вероятно, захотите взглянуть на express, чтобы упростить его.

Комментарии:

1. Да, это посредник между моим сайтом и другими клиентами. Данные находятся в MySQL, поэтому API не нужно будет взаимодействовать с ASP.net вообще.

2. О, так вы хотите, чтобы узел взаимодействовал с базой данных. Затем вы можете захотеть взглянуть на ruby on rails. Узел лучше подходит для обмена данными с удаленными подключениями по сетям, чем общий CRUD с базой данных

3. @Raynos: Если только это не должно быть faaaast. В этом случае node, вероятно, все еще лучше.

4. @thejh Нет. MySQL в моем узле над моим мертвым телом. Возьмите этот MySQL и поместите его в rails.

5. @Raynos: Почему ты ненавидишь node-mysql? 🙁