Node.js - это однопроцессорный процесс, однако каждый запрос обрабатывается как дескриптор сокета, а не его собственный поток. Внутренний узел ожидает ввода-вывода в каждом открытом сокете. Если по какой-либо причине запрос генерирует ошибку внутреннего сервера, вы просто возвращаете ответ 500.
Если есть неперехваченное исключение (немного отличное от внутренней ошибки сервера, но возможно, о чем вы спрашиваете), это будет влияют на весь процесс. У вас может быть встроенный конечный обработчик исключений, но он должен использоваться для очистки процесса и перезапуска его. Все исключения должны обрабатываться чисто в коде, вы не должны полагаться на слушателя «uncaughtException», чтобы восстановить процесс и продолжить выполнение.
Если вы каким-то образом не справитесь с внутренней ошибкой, другие запросы вернут 500, потому что процесс узла будет завершен ... – James
Обычно такие исключения задерживаются обработкой ошибок и реагируют на них. Таким образом, ответ отправляется, и столик вызова очищается, что позволяет выполнить следующий обратный вызов в очереди. –
это не так: поскольку node.js обрабатывает каждый запрос в одном процессе, мне интересно, что произойдет. Процесс запуска узла 1 (за исключением кластеризации) – jmingov