加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

营业框架封装及处理赏罚方法

发布时间:2021-05-17 22:30:20 所属栏目:编程 来源:互联网
导读:框架选型 为了选择吻合的底层框架,小编清算了awesome-nodejs的客栈(每个分类按github star数排序),从Web框架部门可以看到很是富厚,那么我们怎样选择。 awesom

为了选择吻合的底层框架,小编清算了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即可。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读