Giter VIP home page Giter VIP logo

koa2-tutorial's Introduction

基于Koa2搭建Node.js实战项目教程

🇨🇳  喜迎十九大 🇨🇳






🇨🇳  与众不同的学习方式,为你打开新的编程视角

  • 独特的『同步学习』方式

    • 文案讲解+视频演示,文字可激发深层的思考、视频可还原实战操作过程。
  • 云集一线大厂有真正实力的程序员

    • iKcamp 团队云集一线大厂经验丰厚的码农,开源奉献各教程。
  • 改版自真实的线上项目

    • 教程项目并非网上随意 Demo,而是来源于真实线上项目,并改版定制为教程项目
  • 源码开放

    • 课程案例代码完全开放给你,你可以根据所学知识自行修改、优化。


🇨🇳  玩转 Node.js 同时全面掌握潮流技术

  • 采用新一代的 Web 开发框架—— Koa2 ——更小、更富有表现力、更健壮。

  • 使用 fs、buffer、http、path 等 Node.js 最核心 API。

  • 融合多种常见的需求场景:网络请求、JSON 解析、模板引擎、静态资源、日志记录、错误请求处理。

  • 结合 async await (ES6/7) 语句中转中间件控制权,解决回调地狱问题。



🇨🇳 适合人群及技术储备要求

如果你是一个有全栈梦想的前端开发者,或是想要入门 Node.js,那么来学习本课程,学完不仅实现你的全栈梦想,更让你无缝衔 接 Node 应用公司的现代前端开发体系和流程。

  • Node.js
  • ES6/7 语法知识
  • 了解 HTTP 协议


🇨🇳 亮点的课程设计,让你对 Node.js 豁然开朗

  • 基础篇
  • 提升篇
    • 解析JSON——让 Koa2 支持响应 JSON 数据
    • 记录日志——开发日志中间件,记录项目中的各种形式信息
    • 错误处理——处理 HTTP 特定错误请求场景
    • 规范与部署——制定合适的团队规范,提升开发效率

🇨🇳 以 git 分布式版本控制系统,来学习和管理项目代码


  1. 通过 git 把项目复制到本地
git clone https://github.com/ikcamp/koa2-tutorial
  1. 切换目录
cd koa2-tutorial
  1. 在当前目录下切换分支
git checkout 0-start
  1. 进入到项目目录 code
cd code/

注意: 所有的分支命名上,都以数字开头,序号就是我们的开发顺序和讲解顺序。

注意: 分支中的 code/ 目录为当节课程后的完整代码。  


🇨🇳 下载完整项目代码

教程的完整代码在主干 master 中,请自行查阅📖


🇨🇳 iKcamp 制作团队

原创作者:大哼阿干三三小虎胖子小哈DDU可木晃晃
文案校对:李益大力萌AuDDU小溪里小哈
风采主播:可木阿干AuDDU小哈
视频剪辑:小溪里
主站运营:给力xixty
教程主编:张利涛


🇨🇳 活动问答交流专区

关于课程的问题都可随时在 GitHub 或 QQ群(661407609) 提问,讲师会进行集中答疑。

koa2-tutorial's People

Contributors

brucecham avatar zhouyao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

koa2-tutorial's Issues

5-nunjucks

  • 引入模版引擎的目的是将模版和数据组合得到页面。浏览器访问服务器的资源包含了页面和非页面(图各种资源,API接口等),下面的描述,不太恰当

客户端和服务端之间相互通信,传递的数据最终都会展示在视图中,这时候就需要用到『模板引擎

  • 此处选择的koa-nunjucks-2似乎是一个小众的组件,为何不选择大众化的co-view呢?

  • 建议弱化koa-static的内容,这一章节的主题是介绍视图的

  • 建议弱化样式描述的部分,否则此文章的内容太杂,未能体现中心主题。

1

框架太简结了吧,是我找错代码了吗

6-mi-log

  • 业务场景描述的不太恰当,建议参考别人写的日志使用的业务场景
  • ELK并不是监控系统
  • 日志记录的目的建议也参考别人写的
  • 下述描述有问题

Log4js是 Node.js 中记录日志是否成熟的第三方模块

  • 日志大体分为访问日志和应用日志(此处包含了debg,info,warn,error等级别的日志)
  • 此段描述不太合适

当定义了某个输出日志级别,会输出级别相等或更高级别的日志。比如:自定义显示错误级别为 error,那么会显示调用 error、fatal、mark 方法打印的日志

这里应该是想表达:在应用中按照级别记录了日志之后,可以按照指定级别输出高于指定级别的日志。

  • 是否应当先介绍如何封装中间件,再介绍怎么使用封装的中间件
  • 下面这段应当是描述日志文件名的生成规则,而不是日志输出格式:

按照 log4js 2.x 文档中定义的日志输出格式

const appenders = {
task: {
type: 'dateFile', // 日志类型
filename: ${dir}/task, // 输出文件名
pattern: '-yyyy-MM-dd.log', //后缀
alwaysIncludePattern: true // 是否总是有后缀名
}
};

  • 日志的描述有些乱,应当按照应用日志和访问日志来描述。client.js是记录访问日志,这里建议修改为access.js

3-router-request

这一节讲的是request请求数据的获取方式,应该是分为三种情况

  • 数据在query string 中
  • 数据在url的path中
  • 数据在请求的body中

不建议讲前两者归结到get请求,第三种归结到post请求。数据获取的途径,应当和请求的类型没有关系,不能混为一谈。

如何把项目结合vue

请问怎么把前后端界面的开发结合vue进行开发和webpack进行打包呢?同一个端口下进行开发?

女老师

希望女老师讲课不要照着读,起码运行测试一下。谢谢

0-start

  • 建议采用Node8,而不是Node7
  • 安装NPM包,建议统一采用npm i|install koa --save|S 的方式,养成良好的习惯

感谢!!!

最近在学习node,但一直没找到合适的教程,直到发现此教程,就如教程介绍所说的:亮点的课程设计,让你对 Node.js 豁然开朗;真的让我豁然开朗、茅塞顿开、拨云睹日,宛如醍醐灌顶一般;感谢!感谢!感谢!

视频体验不是很好呀

很感谢免费录制这系列的视频!但学习过程感觉有2点体验是很不好的。

  • 视频很模糊
  • 腾讯视频的体验很不好,必须用flash,而且不支持调速度。建议换b站吧,html5播放器和可调节播放速度还是很赞的

7-mi-error

  • 自定义错误页,并不只是处理请求过程中的服务器端异常(HTTP 状态码为5xx),还包含客户端发起请求异常(4xx)
  • 在catch中应当处理的是5xx异常,而4xx应当输入服务器端代码执行正常的逻辑。
  • 渲染错误页,要么就不采用模版,要么就和前面介绍的view中一致吧。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.