path and os
| path.join | |
| __dirname note | |
| OS facts | |
| Config paths |
path.join
Never glue file paths with plus and separators by hand. The join helper picks the right separator and removes duplicate parts.
import { join } from "node:path";
const file: string = join("notes", "app.txt");
console.log(file);
The result adapts to the host system automatically. The same call works on every desktop OS without manual tweaks.
__dirname note
Scripts often need files next to their own source, not next to the launch folder. In CommonJS, the dirname value points at the script folder for exactly this case.
ESM uses import.meta.url for the same job. Stay with CommonJS here and treat the ESM name only as a landmark for later reading.
import { join } from "node:path";
const nearby: string = join(__dirname, "notes.txt");
console.log(nearby);
OS facts
The os module reports platform and home facts without shell calls. Use them for diagnostics and for picking sensible defaults.
import { platform, homedir } from "node:os";
console.log(platform());
console.log(homedir());
linux
Config paths
Per-user settings belong under the home folder, joined with path logic. That placement keeps projects portable and avoids hard-coded locations.
import { homedir } from "node:os";
import { join } from "node:path";
const configFile: string = join(homedir(), "app-config.json");
console.log(configFile);
Build the full path from parts at runtime. Logging it once during development confirms the file lands where users expect.
Next: JSON IO
Article author: Arthur Isaev