Я начинаю разработку нового многостраничного приложения NodeJS (с Express) Web/CRUD/REST, и я хотел бы начать в лучших путь.Обработка изображений в многостраничном режиме в режиме реального времени, nodejs, express, application
объект Application будет иметь много модулей, просто, например:
- управления пользователями на нескольких уровнях с политикой для операций, которые они могут сделать, основываясь на уровне пользователя.
- Простые формы для вставки, обновления, извлечения данных базы данных.
- Экраны для отображения датчиков реального времени (уже считались использующими библиотеки, такие как Socket.io).
Основное приложение (API-интерфейс на стороне сервера NodeJS) также будет «вызываться» приложениями Android/iOS для извлечения/редактирования данных с мобильных устройств.
Учитывая проект в качестве приложения многостраничных со многими асинхронными вызовами, у меня есть сомнения по поводу управления взглядами и я хотел бы выяснить, какие один из следующих подходов являются наиболее удобной:
1 гипотеза (стиль PURE API?): напишите для каждого запроса экспресс-маршрут, который возвращает только ответ JSON и скомпонует клиентскую часть представления (сначала с простым редактированием DOM DQLOR, позже с React или Angular), после загрузки того же (через сокет или вызов ajax).
стороне сервера:
1 вызов:/getFooView
router.get('/getFooView', function(req, res, next) {
//code
res.send(htmlview);
});
2 вызова:/getFooData
router.get('/getFooView', function(req, res, next) {
//code
res.json({"foo": "bar"});
});
стороне клиента:
Клиент Javascript/JQuery будет составлять «getFootView», после чего он будет показан пользователю.
2 гипотезы: написать, для каждого запроса, экспресс-маршрута, который возвращает вид (как правило, крошечный HTML блок, список или аналогичный) уже состоят на сторону сервера (предположим, по handlerbars). В этом случае каждый маршрут контроллера должен интерпретировать запрос в соответствии с запросом.
стороне сервера:
router.get('/getFoo', function(req, res, next) {
// pseudo code
if(request == "ANDROID" || request == "iOS")
res.json({data});
else
res.render('index', {
// handlebars parsed view
title: blockTitle,
data: blockData
sensors: sensorsData
});
});
стороне клиента: JQuery код для добавления принятого блока.
Какой подход лучше подходит для моей цели? Каковы плюсы и минусы?
Извините за мой плохой английский.
Человек, я говорю о NodeJS. Невозможно понять использование Nginx. Почему я должен использовать его и не могу использовать node/express «получает» для просмотра представлений? – Codewarlock
Если ваш бэкэнд делает вид, то у вас нет одностраничного приложения. Ваш сервер с Node.js должен сделать только одно: реализовать REST API. Затем вы можете использовать его для Интернета и мобильных устройств. – galkin