Может кто подскажет:
в MongoDB имеются записи, в консоли mongo, выполняю команду: db.logs.find()
записи выводятся с корректной датой/времени:
{ "_id" : ObjectId("59a01f6f9508d72ddcb4f67c"), "created" : ISODate("2017-08-25T16:00:31.618Z"), "__v" : 0 }
{ "_id" : ObjectId("59a01e399508d72ddcb4f67b"), "created" : ISODate("2017-08-25T15:55:21.234Z"), "__v" : 0 }
{ "_id" : ObjectId("59a01dd19508d72ddcb4f67a"), "created" : ISODate("2017-08-25T15:53:37.579Z"), "__v" : 0 }
то есть время соответсвует системному времени.
А когда в скрипте Node.JS обрабатываю отображение этих данных:
Log.find({}).sort({created: -1}).then(data => res.json(data));
то в браузер выводится другое время:
[{"created":"2017-08-25T13:00:31.618Z","id":"59a01f6f9508d72ddcb4f67c"},
{"created":"2017-08-25T12:55:21.234Z","id":"59a01e399508d72ddcb4f67b"},
{"created":"2017-08-25T12:53:37.579Z","id":"59a01dd19508d72ddcb4f67a"}]
разница -3 часа.
Уверен что это связанно с временными зонами, но не понимаю как настроить правильно, что нобходимо добавить в Node.JS, чтобы он не конвертировал это время, а отдавал как есть.
Уже думал может подключить momentjs, как в сети многие импользуют для работы с таймзонами, но куда его прописать, чтобы он отлавливал вывод между MongoDB и Node.JS
Может кто подскажет что нужно сделать?
P.S. Драйвер для работы с MongoDB использую: Mongoose
Вот хотелось бы чтобы сразу с сервера получить корректные даты, с API на Node.JS.
То есть при запросе, данные из MongoDB возвращаются в JSON-формате и уже с корректными данными.
Пробовал и глобальную переменную process.env.TZ устанавливать в нужное значение, не помогает на глобальном уровне.
Дело в том, что вывод данных происходит из множества таблиц, у которых есть поле типа Date, и не хотелось бы обрабатывать этот вывод для каждой таблицы. Но если конечно нет какого-то глобального способа, то уж ничего не поделать.
Так и на самом сервер установлен нужный часовой пояс.
В саму запись в таблице MongoDB записывается время соответсующее серверу. И через shell mongo отображается правильное время, которое записалось и которое соответсвовало серверному времени. А вот через Node.JS уже другое время выводит.