XDevApi Как вернуть результат .insert () - PullRequest
0 голосов
/ 02 августа 2020

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

введите описание изображения здесь

1 Ответ

1 голос
/ 03 августа 2020

Вы не можете, потому что экземпляр 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

...