如何使用 nodejs 在用户主目录中创建目录?
Posted
技术标签:
【中文标题】如何使用 nodejs 在用户主目录中创建目录?【英文标题】:How can I create a directory in user home using nodejs? 【发布时间】:2017-05-22 15:40:09 【问题描述】:我正在 Ubuntu 上开发一个 node.js 应用程序,并尝试以编程方式在用户的主目录中为我的应用程序创建一个目录。
当我在 Node 中执行以下 javascript 时:
const fs = require("fs");
fs.mkdirSync("~/mynewdir");
我收到以下错误:
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)
执行:
fs.mkdirSync("/home/dah/mynewdir");
但是工作得很好,但我想使用执行脚本的人的主目录。
有人有什么建议吗?
编辑 - 这个问题不是重复的。在这种情况下,问题不是找到主目录(我已经有了),而是为什么 fs 模块不会使用它。
【问题讨论】:
Node.js - Find home directory in platform agnostic way的可能重复 这不是重复的。问题不在于找到主目录,而是为什么 nodejs fs 包没有按预期使用它。 【参考方案1】:你可以这样做:
const homedir = require('os').homedir();
// `homedir()` returns absolute path so we use `join` here
require("fs").mkdir(require('path').join(homedir, 'mynewdir'));
【讨论】:
以上是关于如何使用 nodejs 在用户主目录中创建目录?的主要内容,如果未能解决你的问题,请参考以下文章