Node.js 开发实战
杨浩
腾讯高级工程师
37442 人已学习
新⼈⾸单¥68
课程目录
已完结/共 57 讲
第一章:课程简介 (5讲)
Node.js 开发实战
登录|注册
留言
11
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 21 | HTTP:用express优化石头剪刀布游戏
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 内容综述
03 | Node.js是什么?
04 | Node.js可以用来做什么?
05 | 课程实战项目介绍
06 | 什么是技术预研?
07 | Node.js开发环境安装
08 | 第一个Node.js程序:石头剪刀布游戏
09 | 模块:CommonJS规范
10 | 模块:使用模块规范改造石头剪刀布游戏
11 | 模块:npm
12 | 模块:Node.js内置模块
13 | 异步:非阻塞I/O
14 | 异步:异步编程之callback
15 | 异步:事件循环
16 | 异步:异步编程之Promise
17 | 异步:异步编程之async/await
18 | HTTP:什么是HTTP服务器?
19 | HTTP:简单实现一个HTTP服务器
20 | HTTP:实现网页版石头剪刀布
21 | HTTP:用express优化石头剪刀布游戏
22 | HTTP:用koa优化石头剪刀布游戏
23 | RPC 调用:什么是RPC调用?
24 | RPC调用:Node.js Buffer编解码二进制数据包
25 | RPC 调用:Node.js net建立多路复用的RPC通道
26 | 项目启动:整体需求分析
27 | 项目启动:极客时间App下载页开发
28 | 课程详情页:极客时间详情页需求解构
29 | 课程详情页:将ES6模版字符串改造成模板引擎
30 | 课程详情页:极客时间详情页需求实现
31 | 课程播放页:极客时间播放页需求解构
32 | 课程播放页:GraphQL API服务
33 | 课程播放页:极客时间播放页需求实现
34 | 课程列表页:极客时间列表页需求解构
35 | 课程列表页:用 Vue/React 进行服务端渲染
36 | 课程列表页:极客时间列表页需求实现
37 | 性能工具:HTTP服务的性能测试
38 | 性能工具:Node.js性能分析工具
39 | 代码优化:JavaScript代码性能优化
40 | 代码优化:内存管理优化
41 | 代码优化:Node.js C++插件
42 | 多进程优化:Node.js子进程与线程
43 | 多进程优化:Node.js cluster模块实战与源码解读
44 | 多进程优化:进程守护与管理
45 | 架构优化:动静分离
46 | 架构优化:反向代理与缓存服务
47 | 概念:框架设计和工程化
48 | 概念:设计模式
49 | 概念:Serverless
50 | 服务端框架搭建:koaless
51 | 服务端框架搭建:屏蔽请求细节
52 | 服务端框架搭建:完成服务端框架
53 | 云函数式工程实现:服务端代码
54 | 云函数式工程实现:工具端代码
55 | 加餐:调试 Node.js 源码
56 | 结课测试&结束语
57 | 彩蛋:这是一个严肃的课程
本节摘要
登录 后留言

全部留言(11)

  • 最新
  • 精选
leslee
听口音是广州本地人. 哈哈

作者回复: 犀利啦你,听得甘认真

2019-10-27
4
6
shengnan
这里好像要把fs读取文件返回的结果转成string给send函数才可以,不然会直接返回一个文件下载,不知道是不是我的express版本问题 app.get('/', (req, res) => { res.send(fs.readFileSync(__dirname + '/index.html').toString()) })

作者回复: readFileSync要传第二个参数(编码)返回的才会是字符串

2019-12-02
4
2
TechCheng
老师,index.html中,应该加下 window.history.replaceState(null, null, `http://${location.host}/game?action=${key}`);,这样实验起来,更加直观点 Object.keys($button).forEach(key => { $button[key].addEventListener('click', function () { fetch(`http://${location.host}/game?action=${key}`) .then((res) => { window.history.replaceState(null, null, `http://${location.host}/game?action=${key}`); return res.text() }) .then((text) => { $output.innerHTML += text + '<br/>'; }) }) })

作者回复: 对的,这样会更好,感谢指正

2019-11-07
3
1
陈启年
老师,2个问题请教: 1,在action这个接口中,如果想要达到条件跳转到页面,使用res.redirect(url)后浏览器network会出现该跳转请求,但并没有跳转效果,为啥? if (gameover) { res.status(500); res.send(null); res.redirect("/404"); return; } 2,既然koa可以处理异步洋葱模型,为啥要推荐express这个非异步洋葱模型?或者说二者框架各自有什么优势吗?

作者回复: redirect里面会去把http返回状态码设为302。你这里已经把返回状态码设置为500并且返回出去了,自然就无效了。 express现在主打的是容易上手,不像koa还要自己组装一堆中间件。

2020-08-05
一只鱼
请问使用的标注插件名字是什么呀?

作者回复: 纯vscode自带的哈

2020-02-11
lws
能讲一下socket吗?谢谢!

作者回复: 下几节课就有了

2019-11-13
xup
字体真小啊,屏幕看的超吃力!
2020-06-23
5
一只鱼
chrome 标注插件的名字是 page marker
2020-03-09
2
Geek_c62d5c
视频中说express中间件的洋葱模型不够完善,我在网上翻阅了一些资料,查到express是线型的,有点困惑
2022-06-30
千痴
express 4.17.3版本 res.send(fs.createReadStream(__dirname + '/index.html'),'utf-8') 会直接显示html源代码,并抛出异常。 直接使用 res.sendFile(__dirname + '/index.html') 即可直接显示页面 app.get('/', (req, res) => { res.status(200) res.sendFile(__dirname + '/index.html') })
2022-03-28
1
收起评论