Node.js код в MVC с запросами к сторонним API. Знаете пример?
Ищу пример "фетчера" (fetching/grabbing) к любым публичным API с последующей обработкой/сохранением данных (mongoDB/NoSQL), разложенный по правилам MVC: Schemas - отдельно, контроллеры - отдельно. Наличие ExpressJS/AngularJS - не критично.
Очень хочу хороший код под 3rd party API посмотреть, т.к. для API моего проекта (CrunchBase) еще очень мало публичного кода. Даже плохого.
Книжки читаю, но нужен хороший чистенький код. Ничего не нахожу.
Примеры приложений на Sails.js – классический MVC-фреймворк.
Грабберы, но их вы вряд ли найдете. В Sails вы можете создать сервис с очередью заданий, которые будут выполняться хоть бесконечно долго (пока не умрет процесс например).
Sails.js уже в списке - уж больно ладно сложен. Меня пугает только: а теперь впиши красиво. Потому примеры. Да, попробую именно примеры приложений на нем поискать.
Я делаю запросы к API через cron, а само приложение просто берет готовое из БД.
Плюсы: нет коллбек-хелла; нет тормозов и отказов, если внешнее API упало.
Минусы: данные в БД неминуемо несвежие (насколько несвежие — зависит от того, насколько часто по крону запускается граббер), но это не всегда страшно (например, прогноз погоды в API обновляется каждые два часа).
Нравится. Смущает одно - два приложения "рядом". А можно глянуть код? Очень интересно, как cron выглядит в коде.
У меня сбор информации в базу с помощью API (30-50 тысяч строк) часа три, и перенос из базы, через удаленное API в хранилище — еще дольше. Не хочется делать эти две итерации последовательно. Надеюсь осилить это параллельно с async, что избавит от колбэк-хелла, до некоторой степени.
Обновление раз в неделю - меня это очень даже устроит.
Daniel Newman: глянуть нельзя, к сожалению — коммерческая тайна:( Может быть я попробую воспроизвести минимальный сетап, если мне будет не лень, но обещать не могу:)
Второго приложения и крона в коде нет. Просто строчка в кронтабе типа
В самом приложении есть некоторый dbConnect.js который обеспечивает подключание к БД согласно конфигу, и этот самый dbConnect.js require'ится и из входной точки веб-приложения и scripts/fetchData.js.
У меня, правда, не sails, ванильный express + mongoose.