使用TypeScript仿写猫眼后台管理系统
服务器端:提供API接口
客户端:ajax请求接口获取数据,使用技术渲染页面
服务器端:ts + express + mongodb + class-validator + class-transformer
客户端:ts + react全家桶(react-router、redux、antd)
- 服务器端
使用postman测试
- 客户端
tslint: 和jslint相似,用于检查代码风格
-
创建client、server文件夹
-
进入server文件夹
-
yarn init -y、tsc --init 初始化工程
-
配置tsconfig.json
-
进入
package.json
配置scripts添加
"build": "rm -r dist & tsc"
: 删除所有文件再执行tsc"dev": "nodemon --watch src -e ts --exec ts-node src/index.ts"
:-e ts 表示监控后缀名为ts的文件
注意点:
-
从服务器获取的数据对象一般都是对象字面量,所以我们需要把这种对象转换成Movie类的实例对象,以便对其各种属性进行验证
-
可以通过导入
class-transformer
,并且通过函数plainToClass
,和装饰器@Type(这里写类型)
,来实现1 -
导入
class-transformer
的时候,需要import "reflect-metadata"
,因为前者依赖后者实现的
使用mongodb
数据库驱动:mongodb、mongoose对TS的支持不是太好
其它的数据库驱动:typeorm(完全使用TS编写,基于类,因此在类的属性上加一些装饰器就可以使用数据库),但是它又对mongodb支持不好
最终还是使用mongoose
来实现数据库,安装:yarn add mongoose
,并且安装它的声明文件:yarn add -D @types/mongoose
-
yarn add express
-
yarn add -D @types/express
react脚手架:
create-react-app
nextjs
umijs
使用create-react-app搭建工程
先开发客户端的api请求功能
有的时候,服务端和客户端会共用一个类型,如果要处理此处的重复代码问题,最佳做法是自行使用webpack搭建工程
客户端:localhost:3001,请求/api/movie,最终请求的地址是:http://localhost:3001/api/movie
可以使用代理:"proxy": "http://localhost:3000"
18 节