JS JavaScript  ·  30 вопросов  ·  ~85 мин  ·  ⏱ Таймер 25:00  ·  Сложный  ·  👥 2 прошли

Node.js: модули и среда выполнения

Профессиональный тест о CommonJS и ESM, process, путях, файловой системе и корректном завершении Node.js. Вопросы требуют учитывать тип модуля, URL файла, текущий рабочий каталог, незавершённые операции и блокировку цикла событий.

Отвечено: 0 из 30
--:--
0%
💡 Инструкция: Выберите один ответ из пяти. В тесте 30 вопросов и 85 минут; код лучше читать построчно, не полагаясь на первое впечатление. После завершения откроются общий процент, 6 тематических шкал и объяснение каждого решения.
Вопрос 1 из 30
Как Node.js трактует app.js при "type": "module" в ближайшем package.json?
JSONpackage.json и JavaScript
{"type":"module"}
// app.js
import { readFile } from "node:fs/promises";
Вопрос 2 из 30
Что доступно в ESM вместо __filename?
JavaScript
import { fileURLToPath } from "node:url";
const filename = fileURLToPath(import.meta.url);
Вопрос 3 из 30
Что выведет импорт live binding после inc?
JavaScript
// counter.js
export let count = 0;
export const inc = () => count++;
// app.js
import { count, inc } from "./counter.js";
inc();
console.log(count);
Вопрос 4 из 30
Как CommonJS модуль обычно кэшируется?
Вопрос 5 из 30
Почему цикл CommonJS может видеть неполный exports?
Вопрос 6 из 30
Какое значение имеет process.env.PORT?
JavaScript
const port = Number.parseInt(process.env.PORT ?? "3000", 10);
if (!Number.isInteger(port)) throw new Error("PORT должен быть числом");
Вопрос 7 из 30
Что содержит process.argv[1] при обычном запуске node app.js?
BashКоманда и JavaScript
node app.js --mode safe
// process.argv: [nodePath, appPath, "--mode", "safe"]
Вопрос 8 из 30
Чем process.cwd() отличается от каталога модуля?
JavaScript
console.log(process.cwd());
console.log(new URL(".", import.meta.url).pathname);
Вопрос 9 из 30
Влияет ли изменение process.env в Node.js на родительскую оболочку?
Вопрос 10 из 30
Как относиться к SIGTERM серверу?
Вопрос 11 из 30
Как получить путь data/config.json рядом с ESM-модулем?
JavaScript
import { fileURLToPath } from "node:url";
// Нужно получить путь ./data/config.json относительно текущего ESM-модуля.
Вопрос 12 из 30
Что вернёт readFile без encoding?
JavaScript
import { readFile } from "node:fs/promises";
const data = await readFile("note.txt");
console.log(Buffer.isBuffer(data));
Вопрос 13 из 30
Почему existsSync перед readFile создаёт ненадёжный шаблон?
JavaScript
if (existsSync(path)) {
  const text = await readFile(path, "utf8");
}
Вопрос 14 из 30
Что делает path.resolve("logs","app.log")?
Вопрос 15 из 30
Почему нельзя склеивать пути через "/" для кроссплатформенного CLI?
Вопрос 16 из 30
Почему console.log перед process.exit может не полностью попасть в перенаправленный stdout?
JavaScript
console.log(hugeReport);
process.exit(1);
Вопрос 17 из 30
Что делает process.exitCode = 1 без process.exit()?
JavaScript
process.exitCode = 1;
await flushLogs();
Вопрос 18 из 30
Почему async callback события exit не успеет выполнить await?
JavaScript
process.on("exit", async () => {
  await saveMetrics();
});
Вопрос 19 из 30
Что удерживает Node.js от естественного выхода?
Вопрос 20 из 30
Как избежать вечного graceful shutdown?
Вопрос 21 из 30
С чего начать при ERR_REQUIRE_ESM?
JavaScript
const library = require("esm-only-package");
Вопрос 22 из 30
Как открыть встроенный инспектор, не останавливаясь перед первой строкой приложения?
BashКоманда
node ___ app.js
Вопрос 23 из 30
Какой факт полезен при ошибке «файл не найден только в cron»?
JavaScript
console.error({ cwd: process.cwd(), path: resolvedPath, uid: process.getuid?.() });
Вопрос 24 из 30
Процесс не завершается после тестов. Что искать?
Вопрос 25 из 30
Почему нельзя журналировать весь process.env при сбое?
Вопрос 26 из 30
Почему этот обработчик задерживает все запросы?
JavaScript
app.get("/report", async (req, res) => {
  const result = heavyCpuCalculation();
  res.json(result);
});
Вопрос 27 из 30
Когда worker_threads уместны?
JavaScript
const worker = new Worker(new URL("./worker.js", import.meta.url), { workerData: input });
Вопрос 28 из 30
Почему readFileSync в HTTP-обработчике опасен?
JavaScript
server.on("request", (req, res) => {
  const page = readFileSync("page.html");
  res.end(page);
});
Вопрос 29 из 30
Почему удаление require.cache в рабочем приложении рискованно?
Вопрос 30 из 30
Что измерять при жалобе на «медленный Node», кроме среднего времени ответа?

Ответьте на все 30 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe)

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу