2016-07-20 13 views
0

node.jsを使ってファイルをネットワーク上の場所に書き込んだり、読み込んだりしていました。Nodejs:Unixネットワークの場所にファイルを書き込む

ここで規定されているファイルパスは、 Use node js to access a local network driveです。

私はマシン上で自分のコードをテストしました。マシンとネットワークの場所は、マイコンピュータのネットワーク上で多くのシステムが見える私の職場のネットワークでした。これらのネットワークシステムにファイルを正常に読み書きできました。

この後、UNIXマシンで同じコードを試しましたが、そのためにユーザー名/パスワードとマシンIPが提供されました。

{ [Error: UNKNOWN: unknown error, open '\\<IP-Address>\home\rstudio\work\ru 
    ing\helloWorld.txt'] 
     errno: -4094, 
     code: 'UNKNOWN', 
     syscall: 'open', 
     path: '\\\\<IP-Address>\\home\\rstudio\\work\\running\\helloWorld.txt' } 

以下は、私のコードです:Windows用

var fs = require("fs"); 

fs.writeFile('\\\\<IP-Address>\\home\\rstudio\\work\\running\\helloWorld.txt', 'Hello World!', function (err) { 
    if (err) return console.log(err); 
    console.log('Hello World > helloWorld.txt'); 
}); 

、私が代わりにマシン名を入れていた私は走ったとき

は、しかし、パスと同じコードは、私が言って、エラーを取得しています変更しましたのIPアドレス。

エラーの理由と、2番目のケースでファイルを正常に書き込むために何をすべきか教えてください。

答えて

0

Windowsのローカルネットワークドライブ(たとえばドライブW :)は、UNIXのマウントされたファイルシステム(たとえば/ foo)と同義です。

マウントが適切な場合、writeFile APIは問題なく動作しますが、パス指定子はUNIXの規則(二重バックスラッシュの代わりにスラッシュ)に従う必要があります。

ファイルが存在し、別のシステムにあり、ファイルシステムがマウントされていない場合、このメカニズムは機能しません。データを送信、受信、および書き込むには、クライアントとサーバーのプログラムが必要です。

これが役に立ちます。

+0

私はUNIXシステムからアクセスしようとしているファイルシステムがマウントされていないと言っていますか?そうであれば、Windows上でUNIXのファイルシステムをマウントすると、上記のコードを正常に実行できますか? – ramasCoder

+0

2つの理由から、WindowsにUNIX FSをマウントできるかどうかは疑いがあります。i)両方の低レベルファイル形式が異なっていて、ii)UNIX fsアクセスが常に認証を必要とするため、直接マウントモデルが実現できないようです。しかし、私はこの分野の専門家ではないので、私はここで詳細を提供することはできません。 –

関連する問題