微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何使用节点 js 创建具有到期日期的 tinyURL

如何解决我如何使用节点 js 创建具有到期日期的 tinyURL

我正在生成 tinyUrl 并通过邮件和短信将其发送给客户 ,我想从 nodejs 代码生成 tinyURL,这样如果用户在特定日期之后访问这个 URL,那么它应该会过期。 我可以从波纹管代码成功生成 tinyurl,但我想生成带有到期日期的链接,以便在用户点击特定日期后链接自动过期。

解决此问题的任何方法或为此的另一种选择。

const tinyUrl = require('tinyurl')

const generateTinyUrl = function (mainUrl) {
  return new Promise((resolve,reject) => {
    tinyUrl.shorten(mainUrl).then((response) => {
      if (response !== 'error') {
        logger.info(util.format("Tiny URL Generated Properly."))
        resolve(response)
      } else {
        logger.error(util.format("Error while Generating the Tiny URL. Error: %j",response))
        reject(response)
      }
    }).catch((error) => {
      logger.error(util.format("Error while Generating the Tiny URL. Error: %j",error))
      reject(error)
    })
  })

解决方法

据我所知,您正在使用 https://www.npmjs.com/package/tinyurltinyurl npm 包,它利用 tinyurl.com 的 API 创建缩短的 url。这个包不支持过期链接,这意味着一旦你使用他们的服务创建了一个 url,它将永远在 tinyurl.com 注册。

但是,您可以直接使用 tinyurl API,而忽略 tinyurl npm 包。 Tinyurl 在 tinyurl .com /app /dev 上有很好的文档(添加了空格,因为链接缩短器在 SO 上被列入黑名单)说明您可以向 /update 处的 api 发送 PATCH 请求以更改发送链接的位置。

由于我看不到调用 generateTinyUrl 的内容或如何使用响应,因此我不确定最适合您的情况的前进路径是什么。但是,在我看来,您有两个选择。

  • 选项 1:我建议您学习如何使用外部 API 并从代码中删除 tinyurl npm 包。然后,您可以安排一个 cron 作业或类似的工作来扫描您的 url,检测哪些已过期,然后向 /update 发送请求以将 url 更改为自定义页面,该页面向用户解释他们的链接已过期。
  • 选项 2:生成 tinyURL 时,将其指向您控制的域。生成该页面,以便在访问时从您的数据库收集相关数据,包括其到期日期。到达到期日期后,该页面会显示您编写的自定义到期消息。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。