2016-04-10 17 views
0

ノードエクスプレスフレームワークとajaxを使用していくつかのコードをテストしています。 フロントエンド側で500サーバーエラーが発生するという問題に直面しています。 サーバサイズnodejsコードは以下のようになります(非常に単純です)。 これはエクスプレスルータのコードです。 以下のようなファイルシステムの作業についていくつかのコードを追加すると、500エラーが発生します。 しかし、readdirSync関数呼び出しに関する行を削除してもうまくいきます。 私はこの種の問題を引き起こす可能性があるのは分かりません。 私はここでは同期関数がそれほど良くないと知っていますが、単純なテストのほんの一部です。 readdirSyncでNode.jsファイルシステムが原因でサーバーエラーが発生する

router.post('/pictureListFromFile', function(req, res, next) { 
    var dirPath = "../public/img/laos1"; 
    var fileList = []; 

    // fileList = fs.readdirSync(dirPath); // --> This code cause the problem. 
    console.log(fileList); 

    // response here for ajax 
}); 

答えて

1

にエラーが発生した場合、ノードの中で最も同期呼び出しのように、それはあなたのサーバーをクラッシュ、エラーがスローされます。

ノードとの同期呼び出しを使用しないでください。エラー管理はtry/catchに基づいており、実際にはノードプロセス全体がフリーズしています。

fs.readdir(dirPath, function (err, files){ 
    // rest of the code including res.send 
}); 
1
var fs = require('fs'); //if there is none 

var fileList = []; 
fileList.push(); //use push if you want to add to the array 

しかし、どのようにエラーが発生します:

fs.readdirSync(dirPath); 

はdirPathのが無効であることである

は、コールバックスタイルを使用してください。代わりに必要な__dirname + pathを使用するか、正しいパス(C:/ Program Files/...)を指定する必要があります。

関連する問題