当磁盘上存在文件时,URL查询未定义,但不是

时间:2011-11-09 16:43:18

标签: node.js

这是我所拥有的简化版本,但基本相同。

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(查询)的子字符串)无济于事...

1 个答案:

答案 0 :(得分:0)

你应该检查query.sort是否存在,因为如果我得到http://localhost:12035/ query.sort将返回“undefined”。