Возможно, из-за ваших знаний Erlang вы подумали, что каким-то образом Node.js как-то связан с «узлами» (как узлами erlang), но это всего лишь имя.
Основная идея с Node.js заключается в том, чточто вы откладываете все дорогостоящие операции ввода-вывода и присваиваете обратные вызовы результату этих операций.Причина в том, что ввод / вывод блокирует (единственный) процесс, который выполняется в данный момент.Node.js справится с этим для вас, учитывая, что вы кодируете должным образом.
Простой пример этого - вызов базы данных:
result = SQL.query("EXPENSIVE SELECT HERE")
doSomething(result);
moreStuff(); // This line must wait until the previous ones are completed.
В узле вы должны закодировать этосовсем по-другому:
SQL.query("EXPENSIVE SELECT HERE", function(result) {
doSomething(result);
});
moreStuff(); // This line executes inmediately
Если у вас неверный код в скрипте Node.js, например:
while(true) { }
Тогда вы блокируете процесс, и он не будетспособен обрабатывать больше запросов, чем текущий, поэтому в Node.js обязательно следовать приведенным выше рекомендациям.