Для того, чтобы по-быстрому воспроизвести ситуацию предлагаю использовать express-generator.
После создания "стандартного" приложения на фреймворке Express с помощью express-generator (инструкция) подредактируем код файла app.js - сразу после "статики" и перед "маршрутами" добавим middleware для вывода в консоль данных, необходимых для понимания сути вопроса:
...
app.use(express.static(path.join(__dirname, 'public')));
app.use(function(req, res, next) {
var date = req.query.date || req.body.date,
timestamp = Date.parse(date),
fromTimestamp = new Date(timestamp);
console.log('req.method: %s\ndate: %s\ntimestamp: %s\nfromTimestamp: %s\n', req.method, date, timestamp, fromTimestamp);
next();
});
app.use('/', routes);
...
Получим текущую дату и приведем ее к UTCString, я сделаю это в Node.js REPL:
Запускаем приложение.
Пока мы отправляем запросы с помощью cURL все идет как надо:
- curl -X POST -H "Content-Type: application/json" -d '{"date": "Sun Sep 14 2014 09:55:54 GMT+0400 (Московское время (зима))"}' http://localhost:3000
- curl -X GET http://localhost:3000 --data-urlencode "date=Sun Sep 14 2014 09:55:54 GMT+0400 (Московское время (зима))"
Но если попытаться воткнуть дату в адресную строку браузера, получаем не совсем то, что ожидаем:
- http://localhost:3000/?date=Sun Sep 14 2014 09:55:54 GMT+0400 (Московское время (зима))
А если привести дату к UTCString, то все норм:
- http://localhost:3000/?date=Sun, 14 Sep 2014 05:55:54 GMT
А теперь внимание, вопрос: найди три отличия на этих рисунках :).





Комментариев нет:
Отправить комментарий
Комментарий будет опубликован после модерации