1. Что такое «ад обратного вызова» и как его избежать?

Callback Hell, также известный как Pyramid of Doom, представляет собой анти-шаблон, встречающийся в коде программистов, не разбирающихся в способах асинхронного программирования. … Он состоит из нескольких вложенных обратных вызовов, что затрудняет чтение и отладку кода. Чтобы избежать использования Callback Hell:Используйте модули, Дайте своим функциям имена, Заранее объявите свои функции

2. Что такое «заглушки» в Node.js?

В тестовой среде заглушка заменяет реальное поведение фиксированной версией. В случае HTTP-запросов вместо фактического вызова заглушка имитирует вызов и предоставляет готовый ответ, который можно использовать для проверки. (т.е. жестко закодировано)

3. Что такое «потоки» в Node.JS?

В Node.js существует четыре основных типа потоков: Readable, Writable, Duplex и Transform streams. Доступный для чтения поток — это абстракция источника, из которого могут потребляться данные. Доступный для записи поток — это абстракция назначения, в которое могут быть записаны данные. Дуплексные потоки доступны как для чтения, так и для записи.

4. Что вы подразумеваете под цепочкой в ​​Node.JS?

Методы цепочки, также известные как каскадирование, относятся к многократному вызову одного метода за другим для объекта в одной непрерывной строке кода. Эта техника широко используется в jQuery и других библиотеках JavaScript, и она даже распространена в некоторых нативных методах JavaScript. пример: str.replace("k", "R").toUpperCase().substr(0,4);

6. Объясните «Консоль» в Node.JS?

Модуль console предоставляет простую консоль отладки, похожую на механизм консоли JavaScript, предоставляемый веб-браузерами. Модуль экспортирует два конкретных компонента: класс Console с такими методами, как console.log() , console.error() и console.warn(), который можно использовать для записи в любой поток Node.js.

7. Объясните коды выхода в Node.JS? Перечислите некоторые коды выхода?

Узел обычно завершает работу с кодом состояния 0, когда больше не ожидаются асинхронные операции. В других случаях используются следующие коды состояния:

1 Неустранимое фатальное исключение. Произошло неперехваченное исключение, которое не было обработано доменом или обработчиком событий uncaughtException.

2 — не используется (зарезервировано Bash для встроенного неправильного использования)

3 Внутренняя ошибка синтаксического анализа JavaScript. Исходный код JavaScript, встроенный в процесс начальной загрузки Node, вызвал ошибку синтаксического анализа. Это случается крайне редко и, как правило, может произойти только во время разработки самого Node.

4 Внутренний сбой оценки JavaScript. Исходный код JavaScript, встроенный в процесс начальной загрузки Node, не смог вернуть значение функции при оценке. Это случается крайне редко и, как правило, может произойти только во время разработки самого Node.

5 Фатальная ошибка. В версии 8 произошла фатальная неисправимая ошибка. Обычно сообщение печатается в stderr с префиксом FATAL ERROR.

6 Внутренний нефункциональный обработчик исключений. Возникло необработанное исключение, но функция внутреннего обработчика неустранимых исключений была каким-то образом установлена ​​на нефункцию и не могла быть вызвана.

7 Сбой во время выполнения внутреннего обработчика исключений. Произошло необработанное исключение, и функция внутреннего обработчика неустранимых исключений сама выдала ошибку при попытке его обработать. Это может произойти, например, если обработчик process.on('uncaughtException') или domain.on('error') выдает ошибку.

8 - Не используется. В предыдущих версиях Node код выхода 8 иногда указывал на неперехваченное исключение.

9 – Недопустимый аргумент. Либо указана неизвестная опция, либо опция, требующая значения, была предоставлена ​​без значения.

10 Внутренний сбой во время выполнения JavaScript. Исходный код JavaScript, встроенный в процесс начальной загрузки Node, вызывал ошибку при вызове функции начальной загрузки. Это случается крайне редко и, как правило, может произойти только во время разработки самого Node.

12 Недопустимый аргумент отладки. Были установлены параметры --debug и/или --debug-brk, но выбран недопустимый номер порта.

>128 Выходы по сигналу. Если узел получает фатальный сигнал, например SIGKILL или SIGHUP, его код выхода будет равен 128 плюс значение кода сигнала. Это стандартная практика Unix, поскольку коды выхода определяются как 7-битные целые числа, а выходы сигнала устанавливают старший бит, а затем содержат значение кода сигнала.

8. В чем разница между кластерным и некластерным индексом?

Кластерный индекс определяет порядок, в котором данные физически хранятся в таблице. Табличные данные могут быть отсортированы единственным образом, поэтому для каждой таблицы может быть только один кластеризованный индекс. В SQL Server ограничение первичного ключа автоматически создает кластеризованный индекс для этого конкретного столбца.

Некластеризованный индекс не сортирует физические данные внутри таблицы. Фактически некластеризованный индекс хранится в одном месте, а табличные данные — в другом. Это похоже на учебник, в котором содержание книги расположено в одном месте, а предметный указатель — в другом. Это позволяет использовать более одного некластеризованного индекса для каждой таблицы.

9. Что такое пользовательские функции? Что такое все типы пользовательских функций?

Может быть 4 различных типа пользовательских-определяемых функций, а именно: Функция без аргументов и без возвращаемого значения. Функция без аргументов и возвращаемого значения. Функция с аргументами и без возвращаемого значения. Функция с аргументами и возвращаемым значением.