这是我所拥有的简化版本,但基本相同。
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”。为什么是这样?我已经尝试了各种变通方法来尝试缩小它(即采用querystring.stringify(查询)的子字符串)无济于事...