Вопрос 1
Предполагая, что вы используете какой-то HTTP-фреймворк (похоже, в соответствии с доступными деталями), вы не можете просто вернуть клиенту значение который разрешается Promise
, возвращаемым execute()
.
В этом случае вы получаете экземпляр RowResult
, который не может быть напрямую сериализован в JSON, потому что доступ к самим данным происходит с такими функциями, как fetchOne()
и fetchAll()
. Эти методы необходимо вызывать для создания сериализуемой структуры данных (например, простого объекта или массива JavaScript) на стороне сервера перед отправкой его обратно клиенту.
В этом случае select()
даст только один набор результатов, что означает, что вы можете просто вызвать fetchAll()
и закончить с ним, или l oop через этот набор результатов, используя fetchOne()
(см. Примеры в документации). Это означает, что вы можете сделать следующее:
sess.getSchema("myschema").getTable("mymix").select(['recId', 'JSONdoc'])
.execute()
.then(goodResult => {
cbFunc(null, goodResult.fetchAll())
})
Вопрос 2
Затронутые элементы - это только элементы, которые каким-то образом были изменены в результате операции. Это справедливо только для операций DML, таких как insert()
, delete()
и update()
. В этом случае, поскольку вы просто извлекаете данные из таблицы с помощью select()
, затронутых элементов не будет.
Отказ от ответственности: я ведущий разработчик MySQL X DevAPI Connector для Node.js