创建一个文件模块组织一下跟内容文件相关的东西。在终端,项目所在目录的下面,执行 nest generate module 生成一个模块,名字是 file。
上传文件,存储文件信息相关的东西可以放在一个模块里,执行 nest generate module 名字是 file-create 放在 file/modules/create 里面,加上 --flat 选项。
在这个 file-create 模块里添加一个控制器,执行 nest generate controller 名字是 file-create 放在 file/modules/create/controllers 里面,加上 --flat 选项。
提供文件服务可以放在一个模块里,执行 nest generate module 名字是file-serve 放在 file/modules/serve 里面,后面加上 --flat 选项。
在这个 file-serve 模块里添加一个控制器,执行 nest generate controller 名字是 file-serve 放在 file/modules/serve/controllers 里面,加上 --flat 选项。
处理文件元数据也可以交给一个模块,执行 nest generate module 名字是 file-metadata 放在 file/modules/metadata 里面,用一下 --flat 选项。
在这个 file-metadata 模块里添加一个控制器,执行 nest generate controller 名字是 file-metadata放在 file/modules/metadata/controllers 里面,加上 --flat 选项。
下面可以再生成一个文件实体,执行 npm run gt 名字是 file 放在 file/entities 里面。
配置模块
回到项目,打开 app.module,在这个模块的 imports 里面,添加一个 FileModule ,在根模块里导入文件模块。
然后打开 FileModule 模块,在模块里添加一个 imports ,在导入这里要导入 TypeOrmModule 用一下 forFeature 配置一下,里面添加一个 FileEntity 。在模块里再添加一个 exports ,重新导出这个 TypeOrmModule 模块。
打开 FileCreateModule 模块,在这里添加一个 imports ,里面用一个 forwardRef ,返回要导入的 FileModule 模块。复制一下这个 imports ,打开 FileServeModule ,在这个模块里也添加一个同样的导入。
打开 FileMetadataModule 模块,在这个模块里也需要导入 FileModule 模块。