Paths and URLs

View saved

Join path segments

Use path.join so separators work on Windows and Unix.

import path from "path";

const file = path.join("data", "users", "ada.json");
console.log(file);

Resolve from the script

In ESM, build absolute paths from import.meta.url when needed.

import path from "path";
import { fileURLToPath } from "url";

const __dirname = path.dirname(fileURLToPath(import.meta.url));
const configPath = path.join(__dirname, "config.json");

Parse a URL

Handy when reading query strings in an HTTP handler.

const url = new URL("http://localhost:3000/search?q=node");
console.log(url.pathname); // /search
console.log(url.searchParams.get("q")); // node

Never trust raw paths

When serving files, reject .. path traversal. Prefer mapping known routes to known files.

Comments

One comment per signed-in account. Comments are saved with this page’s URL.