当前位置: 首页 > wzjs >正文

做网站类网站费用做网站的一些话术

做网站类网站费用,做网站的一些话术,四川建设信息网,关键词首页排名优化平台一、Egg.js 核心概念 1. Egg.js 简介 基于 Koa 的企业级 Node.js 框架(阿里开源) 约定优于配置(Convention over Configuration) 插件化架构,内置多进程管理、日志、安全等能力 适合中大型企业应用,提供…

一、Egg.js 核心概念

1. Egg.js 简介

  • 基于 Koa 的企业级 Node.js 框架(阿里开源)

  • 约定优于配置(Convention over Configuration)

  • 插件化架构,内置多进程管理、日志、安全等能力

  • 适合中大型企业应用,提供完整 MVC 解决方案


二、核心架构

1. 目录结构(约定式)

egg-project
├── app
│   ├── controller       # 控制器
│   ├── service          # 业务逻辑
│   ├── model            # 数据模型(可选)
│   ├── middleware       # 中间件
│   ├── router.js        # 路由配置
│   └── extend           # 扩展(helper、filter等)
├── config
│   ├── config.default.js  # 默认配置
│   ├── config.prod.js     # 生产环境配置
│   └── plugin.js        # 插件配置
└── test                # 单元测试

2. 核心对象

对象说明
Application全局应用对象(单例)
Context请求上下文(封装 request/response
Controller处理用户输入,返回响应
Service业务逻辑封装
Helper工具函数
Logger日志对象

三、核心功能

1. 路由系统

(1) 基本路由(app/router.js
module.exports = app => {const { router, controller } = app;router.get('/user/:id', controller.user.info); // RESTful 风格router.post('/api/login', controller.auth.login);
};
(2) RESTful 路由
router.resources('posts', '/api/posts', controller.posts); // 自动生成 CRUD 路由
(3) 路由中间件
router.get('/admin', app.middleware.auth(), controller.admin.index);

2. 控制器(Controller)

(1) 基本结构
// app/controller/user.js
const Controller = require('egg').Controller;class UserController extends Controller {async info() {const { ctx } = this;const userId = ctx.params.id;const user = await ctx.service.user.find(userId);ctx.body = user;}
}
(2) 常用 ctx 方法
方法说明
ctx.query获取查询参数
ctx.params获取路由参数
ctx.request.body获取请求体(需 bodyParser
ctx.redirect(url)重定向
ctx.render(view, data)渲染模板
ctx.status = 200设置状态码

3. 服务(Service)

  • 业务逻辑封装(避免 Controller 臃肿)

  • 可复用(多个 Controller 调用同一个 Service)

  • 支持 async/await

示例
// app/service/user.js
const Service = require('egg').Service;class UserService extends Service {async find(id) {return await this.app.mysql.get('user', { id });}
}
调用方式
const user = await ctx.service.user.find(1);

4. 中间件(Middleware)

(1) 编写中间件
// app/middleware/auth.js
module.exports = (options, app) => {return async (ctx, next) => {if (!ctx.session.user) {ctx.throw(401, 'Unauthorized');}await next();};
};
(2) 注册中间件
// config/config.default.js
exports.middleware = ['auth']; // 全局中间件// 或局部使用
router.get('/admin', app.middleware.auth(), controller.admin.index);

5. 插件系统

(1) 官方插件
插件用途
egg-mysqlMySQL 数据库
egg-sequelizeSequelize ORM
egg-redisRedis 客户端
egg-validate参数校验
egg-jwtJWT 认证
(2) 配置插件
// config/plugin.js
exports.mysql = {enable: true,package: 'egg-mysql',
};// config/config.default.js
exports.mysql = {client: {host: '127.0.0.1',port: '3306',user: 'root',password: '123456',database: 'test',},
};

四、数据操作

1. 数据库(MySQL/Sequelize)

(1) 使用 egg-mysql
// 查询
const user = await this.app.mysql.get('user', { id: 1 });// 插入
await this.app.mysql.insert('user', { name: 'Tom' });// 更新
await this.app.mysql.update('user', { name: 'Jerry' }, { where: { id: 1 } });
(2) 使用 egg-sequelize
// app/model/user.js
module.exports = app => {const { STRING, INTEGER } = app.Sequelize;return app.model.define('user', {name: STRING,age: INTEGER,});
};// 查询
const user = await ctx.model.User.findOne({ where: { id: 1 } });

2. Redis

// 存储
await app.redis.set('key', 'value');// 读取
const value = await app.redis.get('key');

五、安全与优化

1. 安全机制

功能说明
CSRF 防护默认开启(需 ctx.csrf 获取 token)
XSS 过滤内置 egg-security 中间件
SQL 注入防护ORM 自动转义
HTTPS 支持配置 config.prod.js

2. 性能优化

优化点方法
多进程基于 cluster 自动管理
缓存Redis + 内存缓存
日志切割egg-logrotator
静态资源 CDN配置 config.static

六、测试与部署

1. 单元测试

// test/controller/user.test.js
const { app, mock } = require('egg-mock');describe('GET /user/:id', () => {it('should return user info', () => {return app.httpRequest().get('/user/1').expect(200);});
});

2. 部署方式

方式说明
PM2pm2 start npm -- start
Docker官方提供 egg-docker
Serverless阿里云 FC / AWS Lambda

七、总结对比(Express vs Koa vs Egg vs NestJS)

特性ExpressKoaEggNestJS
定位轻量级更现代的 Koa企业级全栈框架
中间件模型线性洋葱圈增强版 Koa模块化 + DI
适合场景小型 API轻量级应用中大型应用复杂后端

八、学习资源

  • Egg.js 官方文档

  • Egg.js 最佳实践

  • 阿里云 Egg.js 教程

Egg.js 适合需要标准化、可维护的企业级 Node.js 开发,尤其适合团队协作项目。 🚀


文章转载自:

http://aYhUfxSh.qdzqf.cn
http://lTQiEnJ2.qdzqf.cn
http://IfJhRZNN.qdzqf.cn
http://d34akrzx.qdzqf.cn
http://ogvVZmYL.qdzqf.cn
http://ZpBRvyJb.qdzqf.cn
http://XDr7svs1.qdzqf.cn
http://RPjVvD9z.qdzqf.cn
http://zH7uHbko.qdzqf.cn
http://X3Ulo2hT.qdzqf.cn
http://YcsIhOSz.qdzqf.cn
http://JeqZcsN6.qdzqf.cn
http://mDoA2DnI.qdzqf.cn
http://fxOl8HQp.qdzqf.cn
http://VG8NSV3G.qdzqf.cn
http://kiuD78Tf.qdzqf.cn
http://geXX8yzK.qdzqf.cn
http://U3S9S4fX.qdzqf.cn
http://6QaQFEpw.qdzqf.cn
http://E8wlblPl.qdzqf.cn
http://hneB2nqP.qdzqf.cn
http://Q7Pk99pV.qdzqf.cn
http://9AQkXKka.qdzqf.cn
http://0nOZQ9Ii.qdzqf.cn
http://HDsvajiG.qdzqf.cn
http://99P1596A.qdzqf.cn
http://wSwRyD2Q.qdzqf.cn
http://HhDWU3II.qdzqf.cn
http://skqT8uo5.qdzqf.cn
http://wbHmetW3.qdzqf.cn
http://www.dtcms.com/wzjs/754018.html

相关文章:

  • 网站评论区怎么做武义网站建设
  • 邦派巴洛特网站是谁做的呀杭州设计公司老总被烧
  • 网站建设策划方案网站页码
  • 成都企业网站建设哪家好WordPress怎么开启rest
  • 网站用access做数据库吗建立网站的目标
  • 在线咨询 1 网站宣传贵阳网站建设方案报价
  • 做网站链接要多少钱wordpress添加多媒体
  • 郑州市建网站网站seo工程师怎么做
  • 网站建设佰首选金手指二八广告策划书案例完整版
  • 宁波网站建设模板制作wordpress怎么二次开
  • 网站建设教案网站引导页是什么
  • 响应式网站建设策划wordpress金融模板
  • 深圳做网站哪家好网站设置ico
  • 医疗网站前置审批手机网站改版公司加盟
  • 建设银行 钓鱼网站网站cms相关知识
  • php响应式网站做网站 难
  • 外贸网站 英文计算机培训班有哪些
  • 哪个网站做设计兼职不用压金南昌建站软件
  • 网站上qq未启用网页美工素材
  • 中国建设报社门户网站网站开发营销型
  • 成都上市的网站建设公司优良的网站邮箱服务器提供商isp
  • 中国交建平台南宁seo排名原理
  • 什么网站做的比较好安全教育平台登录入口 登录
  • 网站建设与管理学什么东莞城乡建设网站
  • 建立一个网站英语微信公众平台微网站怎么做
  • 网站备案安全承诺书苏州网络推广定制
  • 小众网站论文哈尔滨哪里有制作网页的
  • 有专门做美发的网站吗做公众号的网站有哪些功能
  • wordpress主题搜索引擎下载优化大师并安装
  • 设计一个网站花多少时间海外免备案网站