Вставьте UUID с помощью pg-обещания - PullRequest
0 голосов
/ 01 июля 2019

Я разрабатываю новый сервер и пытаюсь, чтобы у клиента был идентификатор UUID.Я хочу иметь возможность выталкивать имя клиента, родительскую компанию и внутренний идентификатор из веб-интерфейса, но uuid должен генерироваться на стороне сервера.Как я могу вставить UUID в базу данных?UUID должен быть указан в таблице.

Текущая настройка такова, что я могу отправить ID с помощью curl и протестировать его.То, что делал код раньше, получало каждое значение из терминала.Я пытаюсь изменить этот рабочий код так, чтобы при создании нового клиента я мог указать его имя, родителя, symID и сгенерировать uuid в столбце ID.

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

Я использую pg-обещание для записи в базу данных postgres, также используя Express и Bluebird.

//Database setup
...
CREATE TABLE  customer(
  customer_name VARCHAR,
  ID varchar PRIMARY KEY,
  parent VARCHAR,
  symID VARCHAR
);
...

//code to create new user
...
function createUser(req, res, next) {
  const user_id = uuidv4();
  //need to fix id. currently it is user entered and not a uuidv4
  db.none('insert into customer values(${customer_name}, ${ID}, ${parent}, ${symID})',
    req.body)
    .then(function () {
      res.status(200)
        .json({
          status: 'success',
          message: 'Inserted one customer'
        });
    })
    .catch(function (err) {
      return next(err);
  });
}
...

1 Ответ

0 голосов
/ 02 июля 2019

Вы можете сгенерировать UUID автоматически с небольшим изменением определения таблицы:

, если еще не установлено, вам нужно расширение pgcrypto.

    CREATE EXTENSION pgcrypto;  -- if needed

    CREATE TABLE  customer(
      customer_name VARCHAR,
      ID uuid default gen_random_uuid() PRIMARY KEY,
      parent VARCHAR,
      symID VARCHAR
    );

Это сгенерирует uuid type4.Возвращение его значения было бы похоже на получение PK, созданного sequence / serial (в списке я так думаю).

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