почему нельзя вставить gps-данные JSON в качестве НЕИЗВЕСТНОГО типа? - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь вставить данные в базу данных PostQSL от клиента к серверу. Тем не менее, есть ошибка как:

Ошибка сервера:

uid: test id
gps: 111
(node:8607) UnhandledPromiseRejectionWarning: error: could not determine data type of parameter $2

почему я не могу вставить gps данных JSON в качестве типа UNKNOWN?

клиент (угловой):

  tracking_info = {
       uid: "test id",
       gps: {
         logitude: 111,
         latitude: 222,
         timestamp: 12345,
       }
     }

  // Send data to server
  api.post('savemessage', tracking_info).share();

Сервер (Node.js)

    ...
    console.log("uid: "+ uid);
    console.log("gps: "+ gps.latitude);

    // insert a new message
    await client.query('INSERT INTO messages(uid, gps) VALUES($1, $2)', [uid, gps])
    ...

Настройка таблицы PostSQL:

[Name]        [DataType]
 uid           VARCHAR
 gps           UNKNOWN

1 Ответ

0 голосов
/ 29 августа 2018

использовать тип данных JSON для хранения данных JSON.

  CREATE TABLE tracking_info (  
    uid UUID NOT NULL,
    gps JSON
  );

Возможно, вам потребуется выполнить JSON.stringify.

await client.query('INSERT INTO messages(uid, gps) VALUES($1, $2)', [uid, JSON.stringify(gps)])

читайте подробнее http://www.postgresqltutorial.com/postgresql-json/

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