Вопрос

Что касается того, как node.js сочетается с клиентами и веб-серверами, правильно ли мое описание ниже?

  • (А) являются клиентами
  • (B) node.js работает на каком-то веб-сервере
  • (C) — это «сервисы», содержащие бизнес-логику, процедуры доступа к базе данных, например.«ПолучитьКлиент()».Для простоты предположим, что служба (C) предоставляет интерфейс REST.

Таким образом, в потоке клиент (A) запросит некоторый ресурс у node.js (B), который, в свою очередь, отправит этот запрос (со всеми его асинхронными и событийными возможностями ввода-вывода) в службу (C), которая может пойти и получить некоторую информацию о клиенте и вернуть ее в node.js (B) через обратный вызов, а затем, в свою очередь, node.js возвращает этот ответ клиенту.

1. Это правильно?

Два связанных вопроса:

2.Как node.js узнает, в какой сервис отправлять запрос?Нужно ли вам создавать «заглушки» API в node.js, которые отражают API-интерфейсы служб, поскольку клиент не обращается напрямую к службам?

3.Как в этой архитектуре обрабатывается состояние сеанса?

Это было полезно?

Решение

Прежде всего «схема» обычного потока:

     Client                                
       |                                    
       v                                    
     Request                               
       |                                  
       v                                                          
(load balancer e.g. nginx)                
       |                                  
       v                                    
 Node.js Instance                          
 |     |      |                             
 v     v      V                            
DB    APIS   FILES                         

По поводу ваших последних двух вопросов:

  1. Откуда вы хотите, чтобы он это знал?Node.js — это универсальный фреймворк, для которого вам придется написать код.

  2. Опять же, Node.js является полностью универсальным.Если у вас есть только один экземпляр, вы мог делай это в памяти.В противном случае вы, скорее всего, использовали бы Redis или что-то подобное.

Вы можете писать игровые серверы на Node.js, можете просто подсчитывать цифры или писать веб-сервер.

Но вам не обязательно делать это так, как вам нравится, или искать фреймворк, который делает это так, как вам нравится.

Другие советы

Node.js — это платформа для написания приложений на JavaScript, которые не запускаются в веб-браузере.Благодаря своей асинхронной природе он действительно хорош при написании веб-сервисов.Поскольку (B) Node.js — это веб-сервер, он не работает внутри веб-сервера (apache).Для (C) вся ваша логика может быть просто в вашем приложении Node.js или ваше приложение Node.js может взаимодействовать с каким-либо другим сервисом для получения данных.Это полностью зависит от вас.

Для двоих вы можете делать это как хотите.Вы пишете код, делайте это так, как это имеет смысл в вашем приложении.

В версии 3 состояние обрабатывается объектом сеанса/соединения, передаваемым в обратные вызовы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top