I am developing a node.js application on Ubuntu and am trying to programmatically create a directory for my application in the user's home directory.
When I execute the following Javascript in Node:
const fs = require("fs");
fs.mkdirSync("~/mynewdir");
I get the following error:
Error: ENOENT: no such file or directory, mkdir '~/mynewdir'
at Error (native)
at Object.fs.mkdirSync (fs.js:923:18)
at repl:1:4
at sigintHandlersWrap (vm.js:22:35)
at sigintHandlersWrap (vm.js:73:12)
at ContextifyScript.Script.runInThisContext (vm.js:21:12)
at REPLServer.defaultEval (repl.js:346:29)
at bound (domain.js:280:14)
at REPLServer.runBound [as eval] (domain.js:293:12)
at REPLServer.<anonymous> (repl.js:545:10)
Executing:
fs.mkdirSync("/home/dah/mynewdir");
works just fine however, but I want to use the home directory of whomever is executing the script.
Does anyone have any suggestions?
Edit - this question is not a duplicate. In this case, the issue is not finding the home directory (I already have this), but why the fs module won't use it.
You can do it like that:
const homedir = require('os').homedir();
// `homedir()` returns absolute path so we use `join` here
require("fs").mkdir(require('path').join(homedir, 'mynewdir'));
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.