2017-05-22 8 views
1

私はUbuntu上でnode.jsアプリケーションを開発しており、ユーザのホームディレクトリに自分のアプリケーション用のディレクトリをプログラムで作成しようとしています。nodejsを使用してユーザーホームにディレクトリを作成するにはどうすればよいですか?

私はノードで次の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モジュールがそれを使用しない理由です。

+2

の可能性のある重複した[Node.jsの - プラットフォームに依存しない方法で、ホームディレクトリを検索します](https://stackoverflow.com/questions/9080085/node-js- platform-agnostic-wayでホームディレクトリを探す) – imjared

+0

これは重複していません。問題はホームディレクトリを見つけることではなく、代わりにnodejs fsパッケージがそれを期待通りに使用していない理由です。 –

答えて

3

あなたはそのようにそれを行うことができます。

const homedir = require('os').homedir(); 
// `homedir()` returns absolute path so we use `join` here 
require("fs").mkdir(require('path').join(homedir, 'mynewdir')); 
+0

助けてくれてありがとう。 –

関連する問題