2011-11-09 17 views
0

これは私が持っているものの単純化されたバージョンですが、基本的に同じです。ファイルがディスク上に存在する場合、URLクエリは未定義ですが、そうでない場合は

var url_parts = url.parse(req.url, true); 
var pathname = url_parts.pathname; 
var query = url_parts.query; 
var datapath = "data_"; 
if(query.sort !== undefined) 
    datapath += query.sort + ".json"; 


var file = fs.readFile(datapath, function(err,data) { 
    if(err) throw err; 
    jsondata = data.toString(); 
}); 

ファイルがディレクトリに存在しない場合は正常に動作します。たとえば、「data_date.json」がない場合、http://localhost:12035/sort=dateを呼び出すと正常に動作します。ただし、そのファイルがディレクトリに存在する場合は、代わりに "data_undefined.json"が使用されます。どうしてこれなの?私はすべての種類の回避策を試してみようと試みました(つまり、クエリーストリング(文字列)の部分文字列を取り除く)しようとしました...

答えて

0

query.sortが存在するかどうかは、私はhttp://localhost:12035/を取得します。query.sortは "undefined"を返します。

+0

わかりやすくするために、このコードを投稿してコードを作成しました。ファイルがディレクトリに存在する場合を除いて、ソートは未定義ではありません。何らかの形で、URL内で定義されていなくても、アプリケーション内で定義されなくなります。 – voxrumor

関連する問題