一、node介绍
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。在Node.js这个平台上,我们可以使用JavaScript 来编写程序,实现相应的功能。
二、相关模块
Node内核提供了很多与文件操作相关的模块,每个模块都提供了一些最基本的操作API,在NPM中也有社区提供的功能包,例如:
1、fs:基础的文件操作 API
2、path:提供和路径相关的操作 API
三、异步的实现
实现异步有两种方式:
1、回调函数
2、定时器
回调函数:监听到某个事件活动后,再执行别的代码,这种情况不影响后续代码执行。
定时器:setTimeout 和 setInterval
所有的异步操纵,在js内部会优先执行同步代码,对于异步的代码会放到最后执行
四、执行js文件
用编辑器编写js代码,然后通过cmd窗口来执行这个文件。不需要进入node的REPL环境,打开cmd 窗口,输入 “node + 文件名(完整路径)” 执行即可。
五、模块分类
简单划分,可以将Node.js中的模块分成三大类:
1、系统模块(核心模块)
2、第三方模块
3、自定义模块
六、加载模块
根据模块类型的不同,加载的方式略有不同。相同的是,都会使用 require 函数。格式:require(模块路径);
模块路径的写法,根据模块类型的不同,写法也不同:核心模块和第三方模块的写法一样,只需要写上模块名即可。
自定义模块,需要使用相对路径来引入,必须使用 ./ 或者 ../ 开头。
(1)核心模块的载入
核心模块是Node.js自带的,本身就具备的,直接载入就可以使用。
(2)第三方模块的载入
首先,需要保证有一个第三方模块,需要先安装第三方模块,使用npm 命令安装即可。
(3)加载自定义模块
先创建一个模块,其实就是一个js文件:mymodule.js。然后,使用require引入,const myModule = require('./mymodule.js');
七、自定义模块的实现
默认情况下,任何一个模块,被载入时,得到的是一个空对象,就是 module.exports;我们可以直接在js文件中使用module.exports。
在Node.js中,还有一个对象exports,它实际上是module.exports的一个引用,相当于exports = module.exports。
如果使用的是module.exports,那么直接赋值即可,如果使用的是exports,不能直接赋值。
八、Node.js进行Web开发的核心
Server 对象
作用:用于创建服务器对象,提供HTTP服务,在Node.js中,Server对象充当了HTTP服务器的角色。它提供了一个监听端口的底层套接字和接收请求,然后发送响应给客户端链接的处理程序。
创建对象:http.createServer();
核心方法:listen;启动监听,启动 http 服务,提供给用户来访问,有一个关键参数port,指定监听的端口
重要事件:request:接收请求时触发,传递两个参数,IncommingMessage 对象和 ServerResponse 对象;
listening:调用listen 时触发,同理也可以作为listen的回调函数来进行绑定。