Mon goose не сохраняет массив со смешанным типом - PullRequest
0 голосов
/ 11 февраля 2020

Нужно ли определять вложенный документ errorMessages, чтобы сохранить массив со смешанными типами? (И как мне это сделать тогда, когда мне нужно смешивать типы внутри массива этого под-документа)

Простое использование массива приводит к тому, что не появляется никаких сообщений об ошибках, виден только пустой массив. Использование mongoose.Mixed в качестве типа приводит к отображению строковых ошибок, но объекты ошибок не учитываются.

Я немного запутался в том, как этого добиться

Моя схема

Schema

Мой документ перед сохранением

Schema before save

Мой документ после сохранения

Schema after save

Код


// document is APIATicket
// error is either a string or an Error Object that has been created with new Error()
document.errorMessages.push(error);
document.save();

// other "normal" objects (created with object literals) result in the same behavior
const myObject = {msg: "Hello world"};
document.payload = myObject;
document.save();

1 Ответ

0 голосов
/ 11 февраля 2020
  1. Использование [Object] не является необходимым, поскольку оно эквивалентно [], который является массивом смешанного типа схемы .

  2. Пн goose не (или, по крайней мере, в моем случае) не сохраняет ошибки узла по умолчанию, которые создаются с помощью const nodeError = new Error("Error Message"), но если ошибки деструктурируются в новый объект, const newObject = {message: nodeError.message, stack: nodeError.stack} и newObject выдвигаются в массив errorMessages, он будет сохранен как положено!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...