
https://github.com/ygweric/short-url 欢迎 star 鼓励
Powered by NestJS + React
NestJs + TypeScript + TypeORM + Sqlite
npm i npm start will run server in open http://localhost:3000/
npm run test npm run test:cov --------------------|---------|----------|---------|---------|------------------- File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s --------------------|---------|----------|---------|---------|------------------- All files | 96.25 | 78.57 | 100 | 95.52 | common | 100 | 100 | 100 | 100 | config.ts | 100 | 100 | 100 | 100 | errorCode.ts | 100 | 100 | 100 | 100 | stringUtil.ts | 100 | 100 | 100 | 100 | controllers | 96 | 83.33 | 100 | 94.74 | app.controller.ts | 96 | 83.33 | 100 | 94.74 | 16 entities | 100 | 100 | 100 | 100 | url.ts | 100 | 100 | 100 | 100 | services | 93.1 | 66.67 | 100 | 91.67 | app.service.ts | 93.1 | 66.67 | 100 | 91.67 | 14,32 --------------------|---------|----------|---------|---------|------------------- 采用数据库 sum 自增的方式, 将 sum 总数转变为 62 进制的字符串
对于不超过 8 位的短链接,最多可以存放 62^8 ≈ 218,340,105,584,896 个链接
export class Url { @PrimaryColumn('varchar', { nullable: false }) public shortUrl: string; @Column("text", { nullable: false}) public longUrl: string; } ── src │ ├── app.module.ts │ ├── common 通用模块 │ │ ├── __tests__ │ │ │ └── stringUtil.spec.ts │ │ ├── config.ts │ │ ├── errorCode.ts │ │ └── stringUtil.ts │ ├── controllers 路由 │ │ ├── __tests__ │ │ │ └── app.controller.spec.ts │ │ └── app.controller.ts │ ├── entities ORM 实例 │ │ └── url.ts │ ├── index.ts │ ├── main.ts │ ├── middlewares │ ├── migration │ └── services 服务层,负责 entity 和 controller 的通信 │ ├── __tests__ │ │ └── app.service.spec.ts │ └── app.service.ts React + TypeScript + Axios + AntD
npm i npm start open http://localhost:8080/
1 opengps 2020-07-21 08:22:31 +08:00 短连接生成机制 采用数据库 sum 自增的方式, 将 sum 总数转变为 62 进制的字符串 短链接生成最好不要用这种规律性的,否则可以被爬取 |
2 shc 2020-07-21 08:37:10 +08:00 支持一波~ 不过我没系统学过算法和编程这些,想请问一下,“ 将 sum 总数转变为 62 进制的字符串”,为什么是 62 进制,不是 61/64 进制呢,这里有什么讲究吗? |
3 optional 2020-07-21 08:38:23 +08:00 把 base62 改成 hashids 就看不出规律了。 |
5 PHPJit 2020-07-21 08:47:23 +08:00 搞一个 docker 啊 |