在应用里,我们可以按照功能,把不同的功能相关的东西放在各自的模块里,每个模块里都可以包含自己的一些东西,比如控制器,Provider 等等,使用模块可以组织应用的结构。
在 Nest 应用里至少需要一个模块,这个模块就是 Root Module,这个模块是在 src 下面的 app.module 里定义的。
下面我们把 posts 相关的东西放在一个独立的模块里。在终端,执行 nest generate ,生成一个 module,模块, 名字是 posts。它会生成一个模块文件,放在了 posts 目录的下面,另外还更新了一下应用的 Root Module。
应用里的模块可以统一把它们放在 modules 目录的下面。
再看一下应用的 Root Module, 在这个模块里,先导入了刚才创建的 posts 模块, 因为刚才我修改了模块的位置,所以导入的这个模块位置需要修改一下, 在 modules 的下面。
上面导入 posts.controller 还有 demo.service 的代码可以去掉, 这些东西一会要放在 posts 模块里。
导入了模块以后,要在 @modules 装饰器里的 imports 里面,声明了一下,这里有个 PostsModule。
再去掉 controllers 里的 PostsController,还有 providers 里的 DemoService。
打开 posts 模块,然后在这个模块类的 @module 装饰器里,添加一个 controllers, 声明一下模块里需要的控制器,添加一个 PostsController, 再添加一个 providers ,里面需要一个 DemoService。
在客户端上再试一下,用 POST 方法请求 posts 地址,发布一个新的内容, 然后再用 GET 方法请求 posts 地址,获取到一组内容。