用户登录

在终端,项目所在目录的下面,先去生成一个新的模块,nest generate 一个 module 放在 modules 里面,名字叫 avatar。用这个模块处理用户头像相关的功能。

再给这个模块生成一个控制器,generate 一个 controller 放在 modules/avatar 里面。 然后再生成一个服务,generate 一个 service,放在 modules/avatar 里面。

回到项目,在 src/modules 里面的 avatar 这个目录里面,再生成一个头像实体,名字是 avatar.entity.ts。

文件里面需要一些来自 typeorm 这个包的东西。

下面再 export 一个 class,名字是 Avatar ,在这个类的上面,再用 @Entity 这个装饰器装饰一下,把它标记成一个实体类。

在这个实体类里面定义一下这个实体上的一些字段,添加一个 id 字段,类型是 number,这个字段的上面用 @PrimaryGeneratedColumn 装饰一下。

下面再添加一个 filename 字段,类型是 string,这个字段存储的是上传以后的文件的名字,字段用 @Column 装饰一下。

然后再添加一个 mimetype,类型是 string,它存储的是文件的类型,字段也需要用 @Column 装饰一下。

下面可以再定义一个关系,关系的名字是 user,类型是一个 User,这是一个多对一的关系,也就是一个用户可以拥有多个头像。关系用 @ManyToOne 装饰一下。

关系关联的 type 是 User,在 User 那里,这个关系对应的是 user.avatar,后面添加一个选项,把 nullable 设置成 false。

定义了这个实体以后,可以在 Avatar 模块里配置一下,在模块的 imports 里面,添加一个 TypeOrmModule,用一下 forFeature ,一个数组,把刚才定义的 Avatar 实体放进来。

用户

打开 User 模块里用的 User 这个 Entity。

在这个用户实体上面也需要定义它跟 Avatar 的关系,关系的名字叫 avatar,类型是一组 Avatar。

关系的上面用 @OneToMany 装饰一下,关联的类型是 Avatar,在 Avatar 那里,这个关系对应的是 avatar.user。

在终端,项目所在目录的下面,执行 npm run start:dev 运行一下项目的开发服务。

打开数据库客户端,定义了 Avatar 实体会在应用的数据库里创建一个叫 avatar 的数据表。 这个表里有几个字段, id,filename,mimetype,还有一个存储头像与用户关系用的 userId 字段,这个字段的值应该是用户的 id 号。

创建头像模块与实体《 Nest.js 应用案例:头像接口 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点