Node.js 基础
Node.js program lifecycle & event loop
event driven approach 事件驱动的方式
CPU密集
IO密集
单线程
后端的分层
就是MVC模型,Node.js还遵循 CommonJS规范:一个文件就是一个模块,有自己独立的作用域。相当于是在一个函数内部写代码
(function (xxx, require, module, _filename, _dirname) {
var a = 10;
})
REPL (read event print loop) 是Node.js的解释器。
require() 用来引入一个模块,比如 require('./index1.js')引入自定义的模块,还有官方的核心模块也是同样的方法引入,查阅文档:http://nodejs.cn/api-v16/
引入核心模块:require('fs'),只要Node启动,核心模块就会被加载到内存中
把当前文件导出为一个模块:
module.exports.test = test;
module.exports.a = 1;
然后在另一个文件中可以:let { test, a } = require('./index1.js) 的方式来获得到这两个变量,并且在加载模块之后会缓存,就算require多次同一个文件,也不会把同一个函数执行两次。
那么如何循环依赖模块?
package.json 是CommonJS规定的包描述符,每个包文件都必须有。require是怎么找这些模块的文件的,视频里有详细描述
管理模块和模块之间的依赖关系
npm, 主要关注常用命令和目录结构
Node 运行原理
Buffer
https://www.nodeapp.cn/buffer.html
Buffer 用来操作二进制数据流,buffer实例类似于整数数组,大小是固定的。
node的buffer申请不是通过js来实现的,而是通过c++来实现的
函数中如果传入 undefined 就代表没有传入