阿里egg.js初体验(二)

接前一篇,阿里egg.js初体验(一) 咱们继续咱们的egg之旅。
咱们已经完成了对于项目结构的搭建,如今咱们须要开始业务的编写。
注意到,目录里controller和service两个文件夹,这里也是咱们编写业务逻辑的主要地方。node

controller:用于解析用户的输入,处理后返回相应的结果。
service:用于编写业务逻辑层,能够复用。git

假设咱们如今完成调用一个git rest api的二次开发工具,主要内容包括
查看用户参与的项目,新建一个项目,管理项目人员等等。json

根据需求,service里咱们须要直接调用git的api,显然,就是须要一个curl的类型功能,egg提供了一个curl,它是经过对context类对扩展实现的,这样在
service里,咱们能够直接经过以下方式访问一个git rest api:segmentfault

const { data: idList } = await this.ctx.curl(`${gitUrl}/users`, {
      data: {
        id: '"$id"',
      },
      dataType: 'json',
    });

这样咱们就把用户列表设置到idList里。
下一步咱们须要在controller调用这个service:api

const userList = await ctx.service.git.list(id);

注意,egg中,全部模块之间的调用,都是经过名字来调用的,若是咱们把以前的service导出为:curl

module.exports = Git;

那么,controller,就能经过this.ctx.service.git.methodName()来访问到对应的service里的方法了。在使用导出的模块时,须要把导出的模块名改成驼峰标准,且首字母变为小写。工具

回到controller中,
咱们能够把获取到的数据放到render的中进行渲染,而后把渲染后的结果发给游览器,或者,也能够把数据直接赋值给ctx.body,而后以json方式返回。开发工具

这样,一个简单的node应用就算搭建完成了。this

相关文章
相关标签/搜索