Ошибка захвата ответа от метода сокращения TinyURL

#javascript #node.js #sequelize.js #short-url

#javascript #node.js #sequelize.js #короткий URL

Вопрос:

Мне нужно зафиксировать возврат shorten метода из TinyUrl библиотеки. Я пытаюсь сохранить этот результат в shortUrl переменной, а затем сохранить его в базе данных следующим образом:

 import TinyUrl from 'tinyurl';

let shortUrl = '';

    TinyUrl.shorten(req.body.url, function (response, error) {
      if (error) console.log(error);
      console.log(response);
      shortUrl = response;
    });

    // Tudo certo para CRIAR o Site
    const { id, hits, url, short_url } = await Site.create({
      hits: 0,
      url: req.body.url,
      short_url: shortUrl,
    });

    return res.json({
      id,
      hits,
      url,
      short_url,
    });
  

При просмотре console.log(response); желаемый возврат отображается правильно, но shortUrl переменная не установлена. Как я могу это сделать?

Ответ №1:

Я реализовал это следующим образом:

 const shortUrl = await TinyUrl.shorten(req.body.url);

const { id, hits, url, short_url } = await Site.create({
  hits: 0,
  url: req.body.url,
  short_url: shortUrl,
});