这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天。
一、本堂课重点内容:
- 介绍 Node.js 的应用场景
- 介绍 Node.js 运行时结构
- 如何用Node.js编写 Http Server
二、详细知识点介绍:
-
Buffer
Buffer 是 Node.js 的内置类型,它是用来表示内存中一块区域的,用以保存二进制数据,可以将它看做为一个二进制数组。
Buffer 可以用来表示图片、视频这样的二进制数据,另外我们从文件中读取到的也是 Buffer 类型的数据,从网络中接收的数据也是 Buffer 类型的数据
Buffer 位于全局作用域中,所以不需要通过 require('buffer') 来引入 Buffer
大部分网络传输的时候会使用通过使用字符串,这难免需要转换成Buffer,以二进制方式进行数据传输。如果我们直接预先转换为Buffer 再进行传输,那么在传输过程中无需做额外的转换,也避免了损耗,使性能得到提升。
-
SSR(server side rendering服务端渲染)
- 相比传统 HTMIL 模版引擎: 避免重复编写代码
- 相比 SPA (single page application) : 首屏渲染更快,SEO 友好
- 缺点:通常 qps 较低,前端代码编写时需要考虑服务端染情况
qps:每秒查询率的简称,是表示计算机中服务器每秒钟查询的次数,是衡量服务器性能的标准 -
node.js运行时结构
-
node.js特点
- 异步
- 单线程
- 跨平台
-
path.resolve()
path.resolve() 该方法将一些 路径/路径段 解析为绝对路径
path.resolve([from…],to )将参数to位置的字符解析到一个绝对路径里,[from … ]为选填项,路径源
var path = require("path") //引入node的path模块 path.resolve('/a/b', './c') // returns '/a/b/c' -
使用node.js中stream相关的API的优势
该API内部会进行一定的处理,效果是会尽可能少的占用内存空间
三、实践练习例子:
将回调函数转成promise
function wait(t) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve()
},t)
})
}
wait(1000).then(() => { console.log('get called') })
四、课后个人总结:
本次课程,在老师讲解用Node.js编写HTTP SERVER的过程中发现自己有很多基础的知识点掌握的不够扎实,导致在看老师写代码,讲解代码的时候会有一点跟不上,但及时的补上自己欠缺的部分也是一种收获,同时也证明了基础不牢,地动山摇。
五、引用参考:
- Node.js的原生模块:nodejs.org/dist/latest…
- 在 npm 上搜索并安装模块:www.npmjs.com/