Event loop, modules, file system, and Express.js.
require() vs importimport { readFile } from 'node:fs/promises'; // ESM with explicit node: prefixfs.promises / fs.readFileconst data = await fs.promises.readFile('./config.json', 'utf8'); JSON.parse(data);path.join / path.resolveconst abs = path.resolve(import.meta.dirname, '../data/seed.json');os.cpus() / os.freemem()const workers = Math.max(1, os.cpus().length - 1);process.env / process.argvconst port = parseInt(process.env.PORT ?? '3000', 10);process.exit(code) / SIGTERMprocess.on('SIGTERM', async () => { await server.close(); process.exit(0); });child_process.spawn / execconst { stdout } = await execFile('git', ['log', '--oneline', '-5']);crypto moduleimport { randomUUID, createHmac } from 'node:crypto'; randomUUID(); // v4 UUIDhttp.createServerhttp.createServer((req, res) => { res.writeHead(200); res.end('OK'); }).listen(3000);express() app structureapp.use(express.json()); app.use(cors()); app.use('/api', router); app.use(errorHandler);Router / router.param()router.param('id', async (req,res,next,id) => { req.post = await Post.findById(id); next(); });Error middleware (4 args)app.use((err, req, res, next) => { const status = err.status ?? 500; res.status(status).json({ error: err.message }); });res.json() / res.status()return res.status(201).json({ id: newUser.id, message: 'Created' });fetch() (Node 18+)const data = await fetch(url, { headers: { Authorization: `Bearer ${token}` } }).then(r => r.json());Rate limiting middlewareapp.use('/api/', rateLimit({ windowMs: 15*60*1000, max: 100 }));Readable / Writable / Transformawait pipeline(fs.createReadStream(src), zlib.createGzip(), fs.createWriteStream(dest));stream.pipeline() (util.promisify)import { pipeline } from 'node:stream/promises'; await pipeline(source, dest);Readable.from(iterable)const stream = Readable.from(async function*() { for await (const row of db) yield row; }());EventEmitterclass Queue extends EventEmitter { push(job) { this.emit('job', job); } }events.once(emitter, event)await events.once(server, 'listening'); console.log('Server ready');AbortSignal.timeout(ms)await fetch(url, { signal: AbortSignal.timeout(5000) });worker_threadsconst { Worker, isMainThread, parentPort } = require('worker_threads');workerData / parentPortnew Worker('./worker.js', { workerData: { items: chunk } })cluster.fork()if (cluster.isPrimary) { os.cpus().forEach(() => cluster.fork()); } else { app.listen(3000); }jest / node --testimport { test, describe, it } from 'node:test'; import assert from 'node:assert';--inspect / Chrome DevToolsnode --inspect-brk server.js # pause on first lineperformance.now() / perf_hooksconst { performance, PerformanceObserver } = require('perf_hooks');--prof / --prof-processnode --prof app.js; node --prof-process isolate-*.log > processed.txtv8.writeHeapSnapshot()process.on('SIGUSR2', () => { v8.writeHeapSnapshot(); });NODE_ENV=productionNODE_ENV=production node server.jsasync_hooks / AsyncLocalStorageconst store = new AsyncLocalStorage(); store.run({ requestId: uuid() }, () => handler(req, res));