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"が使用されます。どうしてこれなの?私はすべての種類の回避策を試してみようと試みました(つまり、クエリーストリング(文字列)の部分文字列を取り除く)しようとしました...
わかりやすくするために、このコードを投稿してコードを作成しました。ファイルがディレクトリに存在する場合を除いて、ソートは未定義ではありません。何らかの形で、URL内で定義されていなくても、アプリケーション内で定義されなくなります。 – voxrumor