初始化typescript
tsc --init
下面是我常用的typescript配置,其中的outDir,include需要配置为你那边的对应目录
{
"compilerOptions": {
"target": "ES5",
"module": "commonjs",
"lib": [
"ES6"
],
"sourceMap": true,//map是否需要生产
"strict": true,
"esModuleInterop": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true ,
"outDir": "./bin",//js输出目录
"noFallthroughCasesInSwitch":true,//switch中的case穿透报错
"noImplicitThis":true,
"noImplicitReturns":true,
"removeComments":true,//移除注释
"strictPropertyInitialization":false,//类的属性如果为值(对象)类型在初始化时没有赋值则报错
"strictNullChecks": true//严格null检查,空引用报错
},
"include": [
"./**/*.ts"
]
}
引入koa,koa-router
直接看文档更方便,因为实在太简单了。
koa地址 : https://koa.bootcss.com/
koa-router地址:https://github.com/ZijianHe/koa-router
引入JWT
npm文档 https://www.npmjs.com/package/jsonwebtoken
jwt简单用法
- sign 加密方法,接受三个参数,data, secret,options
- verify 解密方法,接受两个参数,token,secret
- decode 解密方法,不验证secret.
//封装了一个简单的加解密jwt的方法
import jwt from 'jsonwebtoken'
const JWT_SECRET = 'jwt-secret';
export function jwtEncrypt(data:any):string {
if(!data){
return '';
}
return jwt.sign(data,JWT_SECRET , { expiresIn: '1d' })//token一天的有效期
}
export function jwtDencrypt<T>(token:string):T {
if(!token){
return <T>{};
}
return <T>jwt.verify(token,JWT_SECRET ) ;
}
对应的模板已经发布。仓库地址:https://gitee.com/Jason-codes/koa-ts-typeorm-jwt-model