营业框架封装及处理赏罚方法
为了选择吻合的底层框架,小编清算了awesome-nodejs的客栈(每个分类按github star数排序),从Web框架部门可以看到很是富厚,那么我们怎样选择。 awesome-nodejs地点: https://github.com/huaize2020/awesome-nodejs/blob/main/README-zh-CN.md 主流的Web框架选型首要分为两大门户,基于Express 和 基于Koa,他们都是由统一团队打造。Express和Koa在计划思绪上的区别在于: Express自己成果内置了许多中间件,集成度高,行使省心,上手即用; Koa行使精简的内核,更轻量,行使必要行使者做技能选型按需搭建积木; 基于以上的计划思绪上的不同,基于对机动设置型的思量,笔者选择了 基于Koa 的 门户。但他们都太底层,对付搭建企业级营业框架还必要做较多定制。 Egg.js是什么基于上述的诉求,最后小编选择了Egg.js。 Egg.js地点:https://eggjs.org/zh-cn/ Egg.js是阿里开源的基于Koa2企业级Node.JS框架,其焦点计划就是但愿基于Egg.js孕育出更多上层框架。 引用官网的一句话 我们深知企业级应用在追求类型和共建的同时,还必要思量怎样均衡差异团队之间的差别,求同存异。以是我们没有选择社区常见框架的大集市模式(集成如数据库、模板引擎、前端框架等成果),而是专注于提供 Web 开拓的焦点成果和一套机动可扩展的插件机制。「——官网」 定制方针在开始定制营业框架前,我们先设定一下必要定制的方针。 扩展Controller,添加API乐成/失败返回功效函数; 配置默认模板引擎为 pug; 扩展ctx,添加util, 将dayjs作为同一日期处理赏罚库; 编码假如对Egg.js不太认识,提议可以先辈修下Egg.js的根基行使。 框架初始化通过以下呼吁,初始化项目。个中 --type=framework 暗示框架骨架 villa-framework为框架名和项目文件夹名 $ npm init egg --type=framework villa-framework 以下是初始化出来的目次 villa-framework ├── app │ ├── extend │ └── service ├── config │ ├── config.default.js │ └── plugin.js ├── lib │ └── framework.js ├── test │ ├── fixtures │ └── framework.test.js ├── README.md ├── index.js └── package.json 个中app、config目次根基跟正常的Egg.js应用无差别,但增进了framework.js文件,对应用举办扩展。 // lib/framework.js 'use strict';
const path = require('path'); const egg = require('egg'); const EGG_PATH = Symbol.for('egg#eggPath');
class Application extends egg.Application { get [EGG_PATH]() { return path.dirname(__dirname); } }
class Agent extends egg.Agent { get [EGG_PATH]() { return path.dirname(__dirname); } }
module.exports = Object.assign(egg, { Application, Agent, }); 扩展Controller,添加乐成失败返回功效处理赏罚函数// 以下是Egg.js Controller行使的代码 const Controller = require('egg').Controller;
// 将来修改为 const Controller = require('villa-framework').Controller; 由上面源码我们知道,Controller来自egg工具,因此我们只必要替代为我们界说的Controller即可。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |