0

Openshift のアプリにこのモジュールを使用していますが、データ フォルダーにファイルが存在するかどうかを確認する関数を実行する必要がある場合、エラーが発生します。

DEBUG: /var/lib/openshift/02A50df2XXYD46273d00FFG8/app-root/runtime/repo/server.js:164
        fs.exists('$OPENSHIFT_HOMEDIR/app-root/data/' + user_ip, function(exis
           ^

DEBUG: TypeError: Object #<Object> has no method 'exists'

サーバーコードにrequire fsがあり、package.jsonの依存関係にあります

編集:解決

使用してrequire('path')path.exists()それはうまく機能します。

4

2 に答える 2

1

fs.exists()廃止されました。代わりに、path.exists() を使用してください。パスの詳細については、ノード コアパスモジュールを参照してください。

于 2013-11-14T19:30:52.667 に答える
0

アドバイス:
API ドキュメントhttp://nodejs.org/api/fs.html#fs_fs_exists_path_callbackによると

fs.exists() は時代錯誤であり、歴史的な理由からのみ存在します。独自のコードでそれを使用する理由はほとんどないはずです。

特に、ファイルを開く前にファイルが存在するかどうかを確認することは、競合状態に対して脆弱なアンチパターンです: 別のプロセスが fs.exists() と fs.open() の呼び出しの間にファイルを削除する可能性があります。ファイルを開いて、そこにないときにエラーを処理するだけです。

あなたの問題については、他の fs 呼び出しを行うことができますか?

于 2013-11-14T18:46:36.473 に答える