process er et globalt objekt, der giver information om og kontrol over den aktuelle Node.js-proces. Det er din grænseflade til miljøet, kommandolinjeargumenter, I/O-strømme, livscyklus og signaler.
Læsning af miljøvariabler
process.env.NODE_ENV; // "production" | "development"
process.env.DATABASE_URL; // configuration & secrets injected by the environment
const port = process.env.PORT || 3000;
process.env er standardmåden til at læse konfiguration og hemmeligheder (sat uden for koden) — centralt for twelve-factor config.
Kommandolinjeargumenter
// node script.js --name=Ann
process.argv; // ["node", "/path/script.js", "--name=Ann"]
const args = process.argv.slice(2); // skip the first two
Standard I/O-strømme
process.stdout.write("output\n"); // console.log writes here
process.stderr.write("error\n"); // console.error writes here
process.stdin.on("data", (chunk) => { /* read input */ });
Processens livscyklus og exit
process.exit(0); // exit with success code (1 = error)
process.exitCode = 1; // preferred: set code, let the process finish naturally
process.pid; // the process id
process.cwd(); // current working directory
process.uptime(); // seconds the process has run
Håndtering af signaler og uopdagede fejl (til graciøs nedlukning / sikkerhedsnet)
process.on("SIGTERM", () => { /* clean up, then exit — e.g. on container stop */ });
process.on("SIGINT", () => { /* Ctrl+C */ });
process.on("uncaughtException", (err) => { log(err); process.exit(1); });
process.on("unhandledRejection", (reason) => { log(reason); });
Lytning til SIGTERM/SIGINT er hvordan du implementerer graciøs nedlukning (afslut igangværende anmodninger, luk DB-forbindelser før exit), og uopdagede fejlhåndterere er sikkerhedsnet som sidste udvej.
Andre nyttige medlemmer
process.memoryUsage(); // heap stats (leak detection)
process.nextTick(cb); // schedule a callback before the next event-loop phase
process.platform; // "linux" | "darwin" | "win32"
Hvorfor det betyder noget
process er dit programs forbindelse til dets runtime-miljø.
Du bruger det konstant: læsning af konfiguration/hemmeligheder via process.env, håndtering af CLI-argumenter, og — vigtig for produktion — at fange signaler til graciøs nedlukning og sikkerhedsnet som sidste udvej.
At forstå det er vigtig for at bygge konfigurerbare, robuste, produktionsklare Node-programmer.
