这是我参与「第五届青训营」伴学笔记创作活动的第4天
青训营的课程中讲到了Node.js,在此篇笔记中将介绍关于node.js的相关简介与使用时需要注意的点。
Node模块化
- 在Node中,一个js文件就是一个模块
- 在Node中,每一个js文件中的js代码都是独立运行在一个函数中(而不是全局作用域,所以一个模块中的变量和函数在其他模块中无法访问
模块分为两大类:核心模块和文件模块
核心模块
- 由node引擎提供的模块
- 核心模块的标识是模块名字
文件模块
- 由用户自己创建的
引入其他模块
require(“url”)
使用相对路径,必须以 . 或 . . 开头
exports向外部暴露变量和方法
eg:exports.x="i am x"
exports.fn=function(){}
模块
global:node中的全局对象,和window类似
在全局中创建的变量(函数)都会作为global的属性(方法)保存
node执行模块中的代码时,会添加以下代码
function(exports,require,module,__filename,__dirname){内容
}
模块中的代码都是包装在一个函数中执行,并且在函数执行时,同时传递了5个实参
exports
- 用来将变量或函数暴露到外部
require
- 函数,用来引入外部的模块
module
- 代表当前模块本身
__filename
- 当前模块的完整路径
__dirname
- 当前模块所在文件夹的完整路径
arguments
arguments.callee
-这个属性保存到是当前执行的函数对象
arguments.callee+""
package.json
包描述文件
位于包的根目录下,是包的重要组成部分
npm
通过npm下载的包都放在node_modules文件夹中
node在使用模块名字引入模块时候,会按以下顺序找
当前目录node_modules->上一级目录->再上一级->磁盘根目录
环境变量(windows系统中变量)
path中配置 其中用分号;隔开
配置后的可以在任意位置来访问这些文件
进程和线程
进程:负责为程序的运行提供必备的环境
线程:线程计算机中最小的计算单位,线程负责执行进程中的程序
单线程:JS是单线程 Node服务器单线程的,但在后台拥有一个I/O线程池
多线程