fs.mkdir(path[, options], callback)


    Asynchronously creates a directory.

    The callback is given a possible exception and, if recursive is true, the first directory path created, (err[, path]). path can still be undefined when recursive is true, if no directory was created.

    The optional options argument can be an integer specifying mode (permission and sticky bits), or an object with a mode property and a recursive property indicating whether parent directories should be created. Calling fs.mkdir() when path is a directory that exists results in an error only when recursive is false.

    import { mkdir } from 'node:fs';
    // Creates /tmp/a/apple, regardless of whether `/tmp` and /tmp/a exist.
    mkdir('/tmp/a/apple', { recursive: true }, (err) => {
      if (err) throw err;

    On Windows, using fs.mkdir() on the root directory even with recursion will result in an error:

    import { mkdir } from 'node:fs';
    mkdir('/', { recursive: true }, (err) => {
      // => [Error: EPERM: operation not permitted, mkdir 'C:\']

    See the POSIX mkdir(2) documentation for more details.