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 啊
|