一个使用 next.js 写的网址缩短系统

网址缩短,以前我用php做过,这次用next.js重写一下。

核心原理依然是key、value。说说那个key,其实就是用10转62实现的,10转62的代码来源于网络,不是我写的。

function string10to62(number) {
    var chars = '0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ'.split(''),
      radix = chars.length,
      qutient = +number,
      arr = [];
    do {
      let mod = qutient % radix;
      qutient = (qutient - mod) / radix;
      arr.unshift(chars[mod]);
    } while (qutient);
    return arr.join('');
}

key/value数据库我用的是nedb。next.js的动态路由,文件名为[slug].js,在pages文件架下。

下面代码能自动获得参数:

import { useRouter } from 'next/router';
const  router = useRouter();
const { slug } = router.query;

这样就能拿到slug,去kv里就能找到原始的url,跳转即可。

演示地址:nextshort.vercel.app/
github地址 github.com/codetyphon/nextshort

另外,now的next.js部署服务,似乎无法持久化保存数据?所以演示的网址,并不能真正实现相应的功能。但如果你部署在自己的服务器上,是没问题的。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!