0

Я начинаю разработку нового многостраничного приложения 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 код для добавления принятого блока.

Какой подход лучше подходит для моей цели? Каковы плюсы и минусы?

Извините за мой плохой английский.

ответ

0

Если мы говорим о одностраничном приложении, вам не следует отправлять представления. Вы можете использовать nginx для клиентских файлов, включая css, html, js и т. Д. Также nginx будет кэшировать и проксировать клиентские запросы к вам REST API.

Итак, мой ответ PURE API + nginx для статических файлов.

+0

Человек, я говорю о NodeJS. Невозможно понять использование Nginx. Почему я должен использовать его и не могу использовать node/express «получает» для просмотра представлений? – Codewarlock

+0

Если ваш бэкэнд делает вид, то у вас нет одностраничного приложения. Ваш сервер с Node.js должен сделать только одно: реализовать REST API. Затем вы можете использовать его для Интернета и мобильных устройств. – galkin