我如何使用节点 js 创建带有到期日期的 tinyURL
how i can create tinyURL with expiration date with node js
我生成 tinyUrl 并通过邮件和短信将其发送给客户
,我想从 nodejs 代码生成 tinyURL ,这样如果用户在特定日期之后访问这个 URL 那么它应该会过期。
我可以从下面的代码成功生成 tinyurl,但我想生成 link 和到期日期,这样 Link 将在用户点击特定日期后自动过期。
任何解决这个问题的方法或者是另一种选择。
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/tinyurl 的 tinyurl
npm 包,它利用 tinyurl.com 的 API 创建缩短的 urls。这个包不支持过期 links,这意味着一旦你使用他们的服务创建了一个 url,它将永远注册在 tinyurl.com.
但是,您可以直接使用 tinyurl API,忽略 tinyurl
npm 包。 Tinyurl 在 tinyurl .com /app /dev
有很好的文档(添加空格是因为 link 缩短器在 SO 上被列入黑名单)这解释了你可以向 api 在 /update 发送一个 PATCH 请求到更改 link 的发送位置。
由于我看不到调用 generateTinyUrl
的内容或响应的使用方式,因此我不确定对于您的情况最好的前进路径是什么。但是,在我看来,您有两个选择。
- 选项 1:我建议您学习如何使用外部 API 并从您的代码中删除
tinyurl
npm 包。然后,您可以安排一个 cron 作业或类似的作业来扫描您的 urls,检测哪些已经过期,并向 /update 发送请求以将 url 更改为自定义页面,向用户解释他们的 link 已过期。
- 选项 2:当您生成 tinyURL 时,将其指向您控制的域。生成该页面,以便在访问它时从您的数据库中收集相关数据,包括其到期日期。当达到到期日期时,该页面可能会显示您编写的自定义到期消息。
我生成 tinyUrl 并通过邮件和短信将其发送给客户 ,我想从 nodejs 代码生成 tinyURL ,这样如果用户在特定日期之后访问这个 URL 那么它应该会过期。 我可以从下面的代码成功生成 tinyurl,但我想生成 link 和到期日期,这样 Link 将在用户点击特定日期后自动过期。
任何解决这个问题的方法或者是另一种选择。
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/tinyurl 的 tinyurl
npm 包,它利用 tinyurl.com 的 API 创建缩短的 urls。这个包不支持过期 links,这意味着一旦你使用他们的服务创建了一个 url,它将永远注册在 tinyurl.com.
但是,您可以直接使用 tinyurl API,忽略 tinyurl
npm 包。 Tinyurl 在 tinyurl .com /app /dev
有很好的文档(添加空格是因为 link 缩短器在 SO 上被列入黑名单)这解释了你可以向 api 在 /update 发送一个 PATCH 请求到更改 link 的发送位置。
由于我看不到调用 generateTinyUrl
的内容或响应的使用方式,因此我不确定对于您的情况最好的前进路径是什么。但是,在我看来,您有两个选择。
- 选项 1:我建议您学习如何使用外部 API 并从您的代码中删除
tinyurl
npm 包。然后,您可以安排一个 cron 作业或类似的作业来扫描您的 urls,检测哪些已经过期,并向 /update 发送请求以将 url 更改为自定义页面,向用户解释他们的 link 已过期。 - 选项 2:当您生成 tinyURL 时,将其指向您控制的域。生成该页面,以便在访问它时从您的数据库中收集相关数据,包括其到期日期。当达到到期日期时,该页面可能会显示您编写的自定义到期消息。