Nodejs Couchbase десериализует свойство date из документа
Я сохраняю в Couchbase документ, который имеет значения даты javascript, и хочу получить его точно так же, а не строку "2016-01-02T12:13:14Z".
Нашел способ добиться этого с помощью простого Javascript, используя второй параметр JSON.parse, но Couchbase выполняет внутреннюю десериализацию и не может использовать ее.
Есть ли способ отключить десериализацию Couchbase и избежать JSON.stringify
+ JSON.parse
и ни глубоко идущий объект?
bucket.get(key, (err, result) => {
if (err) {
//deal with error here
} else {
//here "result.value" is already deserialized
done(result.value);
}
});
1 ответ
Как вы, наверное, знаете, обработка объектов JSON и Date может быть немного специфичной в зависимости от того, что вы пытаетесь сделать. Мы склонны придерживаться значений по умолчанию. То, что вы ищете, это довольно продвинутый вариант использования. На данный момент у нас нет прямой поддержки для изменения способа анализа.
Однако для этого есть интерфейс. Он называется "транскодером" и позволяет вам очень точно определить, как вы хотите преобразовать входящие данные в то, что хранится. У меня нет примера, который бы показал, что вы хотите делать, но хорошее место, чтобы начать искать это на более низком уровне, показано в тестах.
Однако может быть проще просто по-разному относиться к тому, что вы храните на уровне приложения. Из моего прочтения параметра revivier, на который вы указали, это будет только во время поиска. Я уверен, что ничто не мешает вам обернуть объект get(), а затем мутировать объект перед тем, как передать его следующему слою по очень низкой цене.