为了账号安全,请及时绑定邮箱和手机立即绑定

【九月打卡】第12天 Node.js工程师学习笔记

课程章节:Egg框架重构篇 - Egg.js 快速入门

课程讲师: 北瑶

课程内容:

Egg 是什么?

Egg.js 为企业级框架和应用而生,我们希望由 Egg.js 孕育出更多上层框架,帮助开发团队和开发人员降低开发和维护成本。

异步编程模型

Node.js 是一个异步的世界, 官方 API 支持的都是 Callback 形式的异步编程, 这带来了诸多问题:

  • callback hell: 最臭名昭著的 callback 嵌套问题。
  • release zalgo: 异步函数中可能同步调用 callback 返回数据,带来不一致性。
安装

npm init egg --type=simple
npm install

框架内置基础对象

在本章,我们会初步介绍一下框架中内置的一些基础对象,包括从 Koa 继承而来的 4 个对象(Application, Context, Request, Response) 以及框架扩展的一些对象(Controller, Service, Helper, Config, Logger),在后续的文档阅读中我们会经常遇到它们。

Application
Application 是全局应用对象,在一个应用中,只会实例化一个,它继承自 Koa.Application,在它上面我们可以挂载一些全局的方法和对象。我们可以轻松的在插件或者应用中扩展 Application 对象。

事件
在框架运行时, 会把 Application 实例上触发一些事件, 应用开发者或者在插件开发者可以监听这些事件做一些操作, 作为应用开发者, 我们一般会在启动自定义脚本中进行监听

  • server: 该事件一个 worker 进程只会触发一次,在 HTTP 服务完成启动后,会将 HTTP server 通过这个事件暴露出来给开发者
  • error: 运行时有任何的异常被 onerror 插件捕获后,都会触发 error 事件,将错误对象和关联的上下文(如果有)暴露给开发者,可以进行自定义的日志记录上报等处理。
  • request 和 response: 应用收到请求和响应请求时,分别会触发 request 和 response 事件,并将当前请求上下文暴露出来,开发者可以监听这两个事件来进行日志记录。
// app.js

module.exports = (app) => {
  app.once('server', (server) => {
    // websocket
  });
  app.on('error', (err, ctx) => {
    // report error
  });
  app.on('request', (ctx) => {
    // log receive request
  });
  app.on('response', (ctx) => {
    // ctx.starttime is set by framework
    const used = Date.now() - ctx.starttime;
    // log total cost
  });
};
学习心得

通过这章学习, 了解 egg 框架在基于 koa中的简便

课程截图

图片描述

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消