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

【金秋打卡】第5天 《Node.js+Koa2+MySQL 打造前后端分离精品项目》

课程名称:Node.js+Koa2+MySQL打造前后端分离精品项目《旧岛》

课程章节:第2章 【深入理解KOA】Koa2的那点事儿与异步编程模型

视频:2-5 KOA的中间件

            2-6 洋葱模型

            2-7 强制Promise

课程讲师: 七月


课程内容:

端口号确信没有被其他的应用程序使用

定义一个中间件就是定义一个普通的函数

const Koa = require('koa')  //导入Koa

const app = new Koa()    //实例化

//应用程序对象 中间件
//发送HTTP KOA接收HTTP

//函数
function test() {
    console.log('hello world');
}

//注册
//app.use(test)

//或者
// app.use(() => {
//  console.log('hello world 1');
// })

//或者
app.use((ctx, next) => {
    console.log('hello world 1');
    next()
})
app.use((ctx, next) => {
    console.log('hello world 2');
})



app.listen(3000)    //启动Koa
app.use((ctx, next) => {
    console.log('hello world 1');
    next()
    console.log('hello world 2');
})
app.use((xtx, next) => {
    console.log('hello world 3');
    next()
    console.log('hello world 4');
})

//显示顺序 1、3、4、2
app.use(async (ctx, next) => {
    console.log('hello world 1');
    await next()
    console.log('hello world 2');
})
app.use(async (xtx, next) => {
    console.log('hello world 3');
    await next()
    console.log('hello world 4');
})

//如果不加async和await 很难保证所有的中间件都是按照洋葱模型的模式执行
app.use((ctx, next) => {
    console.log('hello world 1');
    const a = next()
    console.log(a);
    console.log('hello world 2');
})
app.use((xtx, next) => {
    console.log('hello world 3');
    //next()
    console.log('hello world 4');
})

//输出为
hello world 1
hello world 3
hello world 4
Promise { undefined }
hello world 2
app.use((ctx, next) => {
    console.log('hello world 1');
    const a = next()
    console.log(a);
    console.log('hello world 2');
})
app.use((xtx, next) => {
    console.log('hello world 3');
    //next()
    console.log('hello world 4');
    return 'abc'
})

//输出为
hello world 1
hello world 3
hello world 4
Promise { 'abc' }
hello world 2

课程收获:

这节课终于开始上代码了。七月老师用的开发环境是VS Code。 从最基本的Koa导入开始,导入之后要实例化,实例化之后要启动,KOA实际上是接收HTTP请求, 编写好代码之后,在终端运行node test.js 然后浏览器访问localhost之后(注意写好端口号)在VS Code的终端可以看到输出。之后讲到了洋葱模型。


七月老师非常注重在讲编程知识的同时,讲编程思维,讲知识和知识之间的关系。编程是实践性非常强的工作,学习知识最好的方法是放到项目中。做项目的目的不是做项目,最终要做出来自己的项目,业务承载的是编程知识。明天继续刷后边的课程。


https://img1.sycdn.imooc.com//635be5b9000185c011350640.jpg


https://img1.sycdn.imooc.com//635beb4c00017c1c10260647.jpg

https://img1.sycdn.imooc.com//635bec430001b68910310639.jpg




点击查看更多内容
TA 点赞

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

评论

作者其他优质文章

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

100积分直接送

付费专栏免费学

大额优惠券免费领

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

举报

0/150
提交
取消