#node.js
#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();
});
Это отлично работает, когда файл не существует в каталоге. Например, вызов http://localhost:12035/sort=date работает нормально, если нет «data_date.json». Однако, если этот файл действительно существует в каталоге, вместо него используется «data_undefined.json». Почему это? Я перепробовал все виды обходных путей, чтобы попытаться сузить его (т. Е. Взять подстроку только querystring.stringify(query) ), но безрезультатно…
Ответ №1:
Вы действительно должны проверять, существует ли query.sort, потому что, если я получу http://localhost:12035 / query.sort вернет «неопределенный».
Комментарии:
1. Я сократил код, чтобы опубликовать это, предполагая, что это будет работать лучше для наглядности. Сортировка не определена, за исключением случаев, когда файл существует в каталоге… затем каким-то образом он перестает быть определенным в URL-адресе и больше не определяется в приложении.