Мой вопрос, является ли Node JS подходящей технологией
Короче говоря, да, Node будет работать.
Node.js, как и большинство современных сред JavaScript, поддерживает асинхронное программирование . Что значит для программы быть "асинхронной"? Ну, чтобы понять, что значит быть асинхронным, лучше понять, что значит быть "синхронным". Взято из Eloquent Javascript, книги Марин Хавербеке, доступной здесь :
В модели синхронного программирования все происходит по одному. Когда вы вызываете функцию, которая выполняет длительное действие, она возвращается только после завершения действия и может вернуть результат. Это останавливает вашу программу на время действия.
Другими словами, операции происходят по одному. Если бы я использовал синхронную программу для запуска счетчика билетов в округе, сначала был бы обслужен клиент 1, затем клиент 2, затем клиент 3 и т. Д., И т. Д. Каждый человек перед линией добавляет время ожидания ко всем остальным.
Асинхронная модель позволяет нескольким вещам происходить одновременно. Когда вы запускаете действие, ваша программа продолжает работать. Когда действие заканчивается, программа информируется и получает доступ к результату.
Возвращаясь к примеру со счетчиком билетов, если это делается асинхронно, все лица в очереди будут обслуживаться в одно и то же время, и это не будет иметь большого значения для любого конкретного человека, если в очереди будут другие люди.
Надеюсь, это имеет смысл. Теперь, когда эта идея свежая, давайте рассмотрим, как реализовать асинхронную программу. Как упоминалось ранее, Node поддерживает асинхронные программы , однако поддержки фреймворка недостаточно, вам нужно намеренно создавать свою программу асинхронно.
Я могу привести некоторые подробные примеры того, как этого можно достичь в Node, но я не уверен, какие у вас требования / ограничения. Не стесняйтесь добавлять больше деталей в комментарии к этому ответу, и я могу помочь вам больше. Если вам нужно что-то для начала, уделите некоторое время просмотру обещаний и обратного вызова функций