理解NODE.JS | 青训营笔记

39 阅读2分钟

这是我参与「第五届青训营」伴学笔记创作活动的第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线程池

多线程