前言
对TypeScript
神往已久,看过Angular 4+
写过小Demo,没用它写过后端,一直想通过TypeScript
写一个Demo后端,听说Nestjs
和Java
的Spring
有的一拼,但没上手,只能用Koa
来凑,后续用Nestjs
补上。这只是一个后端,没有前端页面。
具体代码:Github地址
安装依赖
1 | npm intall koa koa-bodyparser koa-router |
依赖中值得注意的是:
nodemon
改动代码后node启动的服务器不会自动刷新,修改后的代码就不生效,要重启才生效。这个工具就是实时监控代码改变后自动重启服务器的。详情看:
ts-node`
typescript`代码正常来说要转译才可以运行,但是这个工具提供了运行环境。reflect-metadata
typeorm
需要ES7
装饰器,需要这个依赖。由于typescript
的装饰器是实验功能,所以在tsconfig.json
时要配置,不然报错。1
2"emitDecoratorMetadata": true,
"experimentalDecorators": true
代码实现
第一步,连接数据库,启动服务监听端口,连接是全局的,详情看 https://github.com/typeorm/typeorm
1 | import * as Koa from 'koa'; |
第二步是,定义表实体,装饰器详情看typeorm
文档
1 | import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm'; |
第三步是写操作数据库的实现
1 | // service 直接操作实体对象就可以,像java的hibernate |
1 | // 控制器,路由过来的请求处理 |
1 | // 路由定义,符合REST Ful规范 |
实践
启动 npm start
1 | [nodemon] 1.19.1 |
最后用Postman测试各接口没问题。
这是简单的实现,什么都没有,只有接口,没有权限控制,没有测试,没有前端,当然这是为nestjs
铺垫,当然后面有时间会补齐。