JavaScript Node.js Cheat Sheet

Node.js filesystem, HTTP, process, streams, events, child processes, and worker threads.

View
StandardDetailedCompact
Export
Copy the compact sheet, download it, or print it.
Download
`D` dense toggle · `C` copy all
## Node.js Basics
Read CLI args
const args = process.argv.slice(2);
Set exit code
process.exitCode = 1;
Current working directory
const cwd = process.cwd();
import.meta.url in ESM
const fileUrl = import.meta.url;
console.table
console.table(rows);
## Filesystem and Path
Read file
import { readFile } from "node:fs/promises";
const text = await readFile("notes.txt", "utf8");
Write file
import { writeFile } from "node:fs/promises";
await writeFile("out.json", JSON.stringify(data, null, 2));
Append file
import { appendFile } from "node:fs/promises";
await appendFile("app.log", "started
");
Create directory
import { mkdir } from "node:fs/promises";
await mkdir("logs", { recursive: true });
Read directory
import { readdir } from "node:fs/promises";
const files = await readdir(".");
Remove file or dir
import { rm } from "node:fs/promises";
await rm("tmp", { recursive: true, force: true });
Copy file
import { copyFile } from "node:fs/promises";
await copyFile("a.txt", "b.txt");
path.join
import path from "node:path";
const full = path.join(process.cwd(), "data", "users.json");
path.parse
const parsed = path.parse("/tmp/app.log");
## HTTP and Streams
Basic HTTP server
import http from "node:http";
const server = http.createServer((req, res) => {
  res.writeHead(200, { "Content-Type": "text/plain" });
  res.end("Hello");
});
server.listen(3000);
Node fetch
const res = await fetch("https://api.example.com/health");
const json = await res.json();
Stream pipeline
import { createReadStream, createWriteStream } from "node:fs";
import { pipeline } from "node:stream/promises";
await pipeline(createReadStream("in.txt"), createWriteStream("out.txt"));
Read request body
const chunks = [];
for await (const chunk of req) chunks.push(chunk);
const body = Buffer.concat(chunks).toString("utf8");
Gzip a stream
import { createReadStream, createWriteStream } from "node:fs";
import { createGzip } from "node:zlib";
createReadStream("app.log").pipe(createGzip()).pipe(createWriteStream("app.log.gz"));
## Events, Child Processes, and Workers
EventEmitter
import { EventEmitter } from "node:events";
const bus = new EventEmitter();
bus.on("ready", () => console.log("ready"));
bus.emit("ready");
events.once promise
import { once } from "node:events";
await once(server, "listening");
child_process.exec
import { exec } from "node:child_process";
exec("node -v", (err, stdout) => console.log(stdout));
child_process.spawn
import { spawn } from "node:child_process";
const child = spawn("npm", ["run", "build"], { stdio: "inherit" });
Worker thread
import { Worker } from "node:worker_threads";
const worker = new Worker(new URL("./worker.js", import.meta.url));