前情提要: JavaScript 要在 Node.js 运行环境中 才可以做后端开发
Node.js 的官网地址: http://nodejs.org/zh-cn/
1、 什么是 Node.js
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
① 浏览器是 JavaScript 的前端运行环境
② Node.js 是 JavaScript 的后端运行环境
③ Node.js 中无法调用 DOM 和 BOM 等浏览器内置 API
Node.js 的学习路径:
JavaScript 基础语法 + Node.js 内置 API 模块(fs、path、http等)+ 第三方 API 模块(express、mysql等)
2、fs 文件系统模块
fs 模块是 Node.js 官方提供的,用来操作文件的模块,它提供了一系列的属性和方法,用来满足用户对文件的操作需求。
在 JavaScript 代码中,若想使用 fs 模块来操作文件,则需先导入
fs 是下载了Node.js后自带的
- fs.readFile(path [,options], callback) 方法:用来读取指定文件中的内容
参数1:必选参数,表示文件路径
参数2:可选参数,表示以什么编码格式来读取文件
参数3:必选参数,文件读取完成后,通过回调函数拿到读取的结果
- fs.writeFile(file, data, [option], callback) 方法:用来向指定文件写入内容
参数1:必选参数,表示文件存放路径
参数2:表示要存放的内容
参数3:可选参数,表示以什么编码格式来读取文件
参数4:必选参数,回调函数
fs模块 - 路径动态拼接的问题
在使用 fs 模块操作文件时,如果提供的操作路径是以 ./或 ../ 开头的相对路径,则很容易出现路径动态拼接错误;而若使用绝对路径,又太过繁琐,且不易维护、移植性差。
故使用 __dirname (双下划线)表示当前文件所处的目录
3、path 路径模块
path 模块是用来处理路径的模块,提供了一系列的属性和方法满足对路径的处理需求。
- path.join ([..paths]) 方法,用来将多个路径片段拼接成一个完成的路径字符串
参数个数不定,可以为任意多个路径片段
- path.basename (文件存放路径,[文件扩展名]) 方法,将文件名从路径字符串中解析出来
如果写了第二个参数,则只会返回文件名(没有扩展名)
- path.extname(文件存放路径)方法:获取路径中的扩展名
4、HTTP模块
在网络节点中,负责消费资源的电脑,叫做客户端;负责对外提供网络资源的电脑,叫做服务器。
http 模块是 Node.js 官方提供的,用来创建web服务器的模块。通过 http 模块提供的 http.creatServer() 方法,就能方便的把一台普通电脑变成一台Web服务器,从而对外提供Web资源服务。
4.1 服务器相关的概念-----IP地址
IP 地址就是互联网上每一台计算机的唯一地址,因此 IP 地址具有唯一性。只有在知道 IP 地址的前提下,才能与对方进行数据通信。
4.2 域名和域名服务器
虽然 IP 地址可以唯一标识计算机,但是它不便于记忆,故人们又发明了一套字符型的地址方案,即域名地址。
IP 地址和域名是一一对应的关系,这份关系存放在域名服务器(DNS,Domain name server)的电脑中。使用者则可以只记忆字符型域名便可以找到对应的服务器,其中域名和IP地址的转化工作交给DNS。
4.3 端口号
在一台电脑中,可以运行成百上千个 web 服务,每个web服务都对应一个唯一的端口号,客户端发送过来的网络请求通过端口号可以准确地交给对应的web服务进行处理。
注意:① 每个端口号不能同时被多个web服务占用
② 在实际应用中,URL中的80端口可以被省略
4.4 创建 web 服务器的基本步骤
1、导入 http 模块
2、创建 web 服务器实例
3、给服务器实例绑定 request 事件,监听客户端的请求
4、启动服务器,确定端口
req 请求对象:当服务器接收到了客户端的请求,就会调用通过 server.on() 为服务器绑定的request事件处理函数,回调函数的参数中可以写上 req 请求对象,它包含了客户端相关的数据或属性。
res 响应对象:包含了服务器相关了数据和类型。