Не удается получить данные из первичного ключа в RethinkDB - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь получить данные в RethinkDB по первичному ключу.Однако мой код не может найти данные.

Я использую драйвер RethinkDBDash для получения данных, и поэтому я определил Rethink как client.db.Идентификатор представляет собой нарезанный массив данных, которые я получаю из API, когда я консоль регистрирую его, значение равно 1. Я проверил это, просто введя целое число 1, и он смог получить данные, однако, когда яиспользовать данные из API, чтобы получить их, он возвращает нулевой erorr.Таблица, по которой я пытаюсь получить данные, называется «предложения» с первичным ключом sid, первоначально id.Таблица выглядит следующим образом:

{
"author": {
"id":  "535986058991501323"
} ,
"sid": 1 ,
"status":  "PENDING" ,
"suggestion":  "wtf"
}

В прошлых проектах я без проблем смог получить данные из первичного ключа с помощью этого точного метода.

const id = args.slice(0).join(' ');
console.log(id);
const data = await client.db.table('suggestions').get(id).run();
console.log(data.sid);

После получения данных я ожидал консольный журнал со значением 1. Однако я получил сообщение об ошибке:

(node:34984) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'sid' of null
    at Object.run (C:\Users\facto\Desktop\Projects\JavaScript\Bots\CountSill\commands\deny.js:7:26)
(node:34984) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:34984) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

1 Ответ

0 голосов
/ 12 февраля 2019

Я выяснил проблему, первичный ключ ожидает целое число, а не строку, поэтому он ищет целое число, а не строку, и, поскольку он не может его найти, он выдает ошибку.Чтобы это исправить, мне просто нужно было изменить данные с целого на строку.Вы также можете просто использовать функцию parseInt для преобразования массива из строки в целое число.

...