用户登录

在应用里面很多东西都可以看成是 Provider,比如 Service,Repository,Factory,Helper 等等 .. 比如在控制器里面用的一些比较复杂的逻辑,我们可以把它从控制器里抽离出来,放在一个 Service Provider 里面 ..

Provider 其实就是一般的类,只不过我们需要使用 @Injectable 这个装饰器装饰一下 .. 下面我们可以使用 nest 的命令行工具去创建一个 Service ..

在命令行下面,执行一下 nest generate .. 生成一个 service ,名字可以是 demo ,把这个 service 放在 demo 这个目录的下面 ...

命令会生成两个文件 .. 放在了 src/demo 的下面 ... demo.service.spec.ts 是这个服务的测试 .. demo.service.ts 是定义服务类的地方 .. 另外命令还更新了一下 app.module 这个模块 ..

回到项目 .. 先打开 src 下面的 app.module .. 在这个模块文件里面,先导入了刚才我们用命令创建的这个 demo.service ... 然后在模块的 providers 里面,列出了这个 DemoService ..

再打开 demo.service.ts .. 文件的一开始,先从 @nestjs/common 这个包里面把 Injectable 这个装饰器拿出来用一下 .. 下面用了这个装饰器,装饰了一下服务类 .. 就是这个 DemoService ..

在这个类里面,可以定义一个方法 ... 名字是 tellStory .. 方法 return 一个用表情符号讲的鬼故事 ..

然后在 demo.controller 这个控制器里面,我们可以用一下 DemoService 里面提供的服务 .. 在文件顶部先导入它 .. import ... DemoService ... from ./demo.service ..

下面在这个控制器里面,我们需要把这个 DemoService 注入进来 .. 注入的方法就是,先在类里添加一个构造函数 .. constructor ... private readonly demoService .. 类型是 DemoService .. 这样我们就可以在这个类里面使用这个 demoService 里面提供的服务了 ..

private 表示属性是私有的,就是只能在类的内部使用它,readonly 表示属性一但有值就不能再修改了 ..

在这个 ghostStory 方法里面,让它 return 一下 this.demoService,用一下 tellStory 这个方法 ..

回到浏览器 ... 访问一下 demo 这个地址 ...

页面上会显示一个用表情符号讲的鬼故事 ...

响应回来内容是 DemoSerivce 这个服务里面的 tellStory 这个方法生成的 ...

Provider《 Nest.js:应用框架 》

统计

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

社会化网络

关于

微信订阅号

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