回到项目,在 avatar 里面新建一个 avatar.model.ts,在这个文件里可以定义并导出一个类,有它描述一下头像这种数据。导出一个 class,名字叫 AvatarModel。 这个类里面有几个可选的属性,id ,类型是 number,mimetype,类型是 string,filename 类型是 string, size 类型是 number,userId 类型是 number。
然后在 avatar.service 里面定义一个存储头像数据用的功能,先在文件顶部,导入 AvatarModel ,来自当前目录里的 avatar.model 。
下面定义一个保存头像文件信息用的函数,名字是 createAvatar ,函数接收一个 avatar 参数,类型是 AvatarModel 。在这个函数里面,先准备一段查询。声明一个 statement ,用一个字符模板组织一段查询, INSERT INTO 往 avatar 这个数据表里插入数据记录。用 SET 设置具体的数据,先用一个占位符表示。
再执行一下准备好的这段查询,把执行结果里的第一个项目解构出来,起个名字叫 data,等于 await,用一下 connection 上的 promise,接着调用 query 方法执行一段查询,这里就是 statement,然后要提供这段查询里的占位符的值,让它作为 query 方法的第二个参数,这里就是 avatar ,也就是这个函数接收的这个参数。
最后再让这个函数提供点数据,让它 return 这个 data。