当前位置: 首页 > 工具软件 > hass_config > 使用案例 >

4.service、config的使用

公孙弘图
2023-12-01

**注:**使用service和config前无需引入相关文件;

一、service的使用

1.创建news服务

vscode安装egg.js插件,快捷生成service文件

@file(news.js)

const Service = require('egg').Service;

class NewsService extends Service {
    async getNewsList() {
        let list = [1, 2, 3];
        return list;
    }
}
module.exports = NewsService;

2.在controller中使用

class NewsController extends Controller {
    async index() {     
        // service的使用:不用引入,已挂载再this上,this.service+文件名+方法名
        let list = await this.service.news.getNewsList();
        await this.ctx.render('news', { list })
    }
}

module.exports = NewsController;

3.一个服务调用另外一个服务

3.1 user服务

@file(user.js)

class UserService extends Service {
    async getUserInfo() {
        return {
            name: '张三',
            age: 20 
        }
    }
}

3.2 news 服务调用user服务

class NewsService extends Service {
    async getNewsList() {
        // 调用user服务的数据
        let user = await this.service.user.getUserInfo();
        console.log('news-服务:--user: ', user);
    }
}

二、config的使用

1.在config.default中添加一个全局数据

module.exports = appInfo => {
    const config = exports = {};

    // config全局数据
    config.api = 'http://zgl.api';
    return {
        ...config,
    };
};

2.在controller或service中使用

class NewsController extends Controller {
    async index() {     
        // 使用config的数据
        let configtxt = this.config.api;
        console.log('configtxt: ', configtxt);
    }
}

十、总结

1. 服务间可以相互调用

 类似资料: