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

Args, env, paths, process control, and console utilities.

Read CLI args

javascriptANYjavascriptnodejscli
javascript
const args = process.argv.slice(2);

Set exit code

javascriptANYjavascriptnodejsprocess
javascript
process.exitCode = 1;

Current working directory

javascriptANYjavascriptnodejspaths
javascript
const cwd = process.cwd();

import.meta.url in ESM

javascriptANYjavascriptnodejsesm
javascript
const fileUrl = import.meta.url;

console.table

javascriptANYjavascriptnodejsdebugging
javascript
console.table(rows);

Filesystem and Path

Read, write, append, copy, remove, and inspect files.

Read file

javascriptANYjavascriptnodejsfs
javascript
import { readFile } from "node:fs/promises";
const text = await readFile("notes.txt", "utf8");

Write file

javascriptANYjavascriptnodejsfs
javascript
import { writeFile } from "node:fs/promises";
await writeFile("out.json", JSON.stringify(data, null, 2));

Append file

javascriptANYjavascriptnodejsfs
javascript
import { appendFile } from "node:fs/promises";
await appendFile("app.log", "started
");

Create directory

javascriptANYjavascriptnodejsfs
javascript
import { mkdir } from "node:fs/promises";
await mkdir("logs", { recursive: true });

Read directory

javascriptANYjavascriptnodejsfs
javascript
import { readdir } from "node:fs/promises";
const files = await readdir(".");

Remove file or dir

javascriptANYjavascriptnodejsfs
javascript
import { rm } from "node:fs/promises";
await rm("tmp", { recursive: true, force: true });

Copy file

javascriptANYjavascriptnodejsfs
javascript
import { copyFile } from "node:fs/promises";
await copyFile("a.txt", "b.txt");

path.join

javascriptANYjavascriptnodejspath
javascript
import path from "node:path";
const full = path.join(process.cwd(), "data", "users.json");

path.parse

javascriptANYjavascriptnodejspath
javascript
const parsed = path.parse("/tmp/app.log");

HTTP and Streams

Create HTTP servers, fetch, stream files, and process request bodies.

Basic HTTP server

javascriptANYjavascriptnodejshttp
javascript
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

javascriptANYjavascriptnodejshttp
javascript
const res = await fetch("https://api.example.com/health");
const json = await res.json();

Stream pipeline

javascriptANYjavascriptnodejsstreams
javascript
import { createReadStream, createWriteStream } from "node:fs";
import { pipeline } from "node:stream/promises";
await pipeline(createReadStream("in.txt"), createWriteStream("out.txt"));

Read request body

javascriptANYjavascriptnodejshttp
javascript
const chunks = [];
for await (const chunk of req) chunks.push(chunk);
const body = Buffer.concat(chunks).toString("utf8");

Gzip a stream

javascriptANYjavascriptnodejszlib
javascript
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, exec/spawn, and worker threads.

EventEmitter

javascriptANYjavascriptnodejsevents
javascript
import { EventEmitter } from "node:events";
const bus = new EventEmitter();
bus.on("ready", () => console.log("ready"));
bus.emit("ready");

events.once promise

javascriptANYjavascriptnodejsevents
javascript
import { once } from "node:events";
await once(server, "listening");

child_process.exec

javascriptANYjavascriptnodejschild-process
javascript
import { exec } from "node:child_process";
exec("node -v", (err, stdout) => console.log(stdout));

child_process.spawn

javascriptANYjavascriptnodejschild-process
javascript
import { spawn } from "node:child_process";
const child = spawn("npm", ["run", "build"], { stdio: "inherit" });

Worker thread

javascriptANYjavascriptnodejsworker-threads
javascript
import { Worker } from "node:worker_threads";
const worker = new Worker(new URL("./worker.js", import.meta.url));