XDevApi Как вернуть результат .insert()

.insert() успешно, но следующий результат {result:{}}в Почтальоне. Как отправить весь объект на экран обратно, чтобы клиент мог запрашивать свойства?

ht tps:https://stackru.com/images/54ae2a5a39fac892364f91d1499edd5310294a70.png

1 ответ

Решение

Вы не можете, потому что Result Экземпляр не может быть напрямую сериализован в JSON, который, в конце концов, является форматом, который отправляется обратно клиенту через HTTP-ответ. Вам необходимо создать простой объект JavaScript на стороне сервера, содержащий все необходимые вам свойства, которые, в свою очередь, будут правильно сериализованы в JSON.

В случае обычного insert() в конечном итоге единственными "интересными" данными может быть количество вставленных элементов, AUTO_INCREMENTподсчитать (если применимо) и подробные сведения обо всех созданных предупреждениях. Все остальное к такой операции неприменимо.

table.insert(/* something */)
  .execute()
  .then(out => {
    const json = {
      items: out.getAffectedItemsCount(),
      auto_increment: out.getAutoIncrementValue()
    }

    if (out.getWarningsCount() > 0) {
      json.warnings = out.getWarnings()
    }

    res.status(200).send(json)
  }) 

Отказ от ответственности: я ведущий разработчик MySQL X DevAPI Connector для Node.js

Другие вопросы по тегам