2012-06-10 16 views
5

NodeJSをテストして、まだJavaScriptで考えることを学ぶだけで、この基本的なFileIO操作をどのように機能させることができますか?ここでNodeJS基本FileIO

は、私はそれが何をしたいものです:

  • 可変出力から変数
  • 書き込みXMLファイルにすべての内容をすべき入れ

    • 読むのXMLファイル(メモリに読み込む)
    • 元のファイルと同じで
    var fs = require('fs'); 
    var filepath = 'c:\/testin.xml'; 
    
    fs.readFile(filepath, 'utf8', function(err, data) { 
        if(err) { 
         console.error("Could not open file: %s", err); 
        } 
    }); 
    
    fs.writeFile('c:\/testout.xml', data, function(err) { 
        if(err) { 
         console.error("Could not write file: %s", err); 
        } 
    }); 
    
  • +3

    あなたはスラッシュをエスケープする必要はありません。 – ThiefMaster

    答えて

    11

    コードの問題は、読み込んだデータを読み込む前に、読み込んだデータをターゲットファイルに書き込もうとすることです。これらの操作は非同期です。別のオプションは、readFileSync()を使用することでしょう

    fs.readFile(filepath, 'utf8', function(err, data) { 
        if(err) { 
         console.error("Could not open file: %s", err); 
         return; 
        } 
        fs.writeFile('c:/testout.xml', data, function(err) { 
         if(err) { 
          console.error("Could not write file: %s", err); 
         } 
        }); 
    }); 
    

    - それはあなたがその(例えば場合の対処ときに応じて、悪い考えのようになります。

    単にreadFile操作のコールバックにファイル書き込みコードを移動oeprationは、ユーザーからのHTTPリクエストによって引き起こされる)

    var data = fs.readFileSync(filepath, 'utf-8'); 
    fs.writeFileSync('c:/testout.xml', data);