一 关于node.js
1 接收请求
2 处理请求
3 响应请求
二 关于node.js的必要条件,node.js作为高性能的服务器,有两个必要的条件。
1 必须是异步非阻塞
2 基于事件驱动的
注意:异步的方法:1 异步方法不可能有返回值,2 有异步的地方必须有回调函数
三 node.js的概念性知识
1 node中的JavaScript组成部分:ECMAScript + 核心API + 其他第三方API
2 node.js是基于chrome V8引擎的JavaScript运行环境
3 执行代码的一个解析执行环境就是Chrome的v8引擎
四 node的包管理器
1 npm 是全球最大的开源库生态系统
关于npm的常用命令:
1 npm init -y 初始化包的环境
2 npm install 包名 下载包,缩写形式为 npm i 包名
3 npm i 可以把package.json里面包含的所有的包都下载下来。基本都是用于下载别人的项目的时候去下载附带的包
4 注意:在下载包的时候,必须要看清楚,是开发时候用的还是上线的时候用的或者是开发和上线都需要用的
5 --save 表示把包安装到部署依赖当中(在开发和上线的时候需要使用到的包) 简写 -S
6 --save -dev 表示安装到开发依赖中,只在项目开发阶段需要用到 简写 -D
7 npm uninstall 删除包
8 安装全局包 npm i 包名 -g
五 关于镜像的问题
1 下载镜像nrm npm i nrm
2 nrm ls 查看镜像源
3 切换镜像源 nrm use 源名称
六 注意点:在node中,不能调用bom和dom元素
七 node核心模块的调用方式
1 引入 通过require来引入核心模块
var fs = require("fs")
2 调用核心模块的API
3 注意:返回的数据都要添加编码 ---utf-8,可以在api上面添加,也可以在返回的数据,data.strings("默认是utf-8");
八 箭头函数
1 定义 (参数)=> {函数体};专门用于做回调函数,没有函数名,但是可以赋值给变量去调用
2 没有参数的情况下,和只有一个参数的情况下,可以省略括号
3 在函数体只有一句代码的情况下,花括号也可以省略
注意:只要是箭头函数,里面的this永远都是指向创建这个函数的所在对象的上下文;尽量写完整,不要去省略括号或者花括号
九 额外补充,关于函数调用模式
四种:
1 函数调用模式
say():this指向window
2 方法调用模式
对象.方法 ();this指定调用该方法的对象
3 构造函数调用模式
new fun();this指向当前构造函数所创建的对象
4 上下文调用模式
fn.call()\fn.apply()
十 创建在node的服务器
1 创建服务器,必须要基于协议来创建,所以必须先引入核心模块 http
引入模块 var http = require('http')
2 创建服务器
var server = http.createServer();
3 设置将来响应指定端口的请求
server.listen('3000',()=>{
console.log("http://127.0.0.1:3000")
})
4 监听用户是否发送指定端口的请求
server.on("request",(req,res)=>{
函数执行体
})
5 注意:
1 req指的是request,即是请求报文
2 res指的是response,即是响应报文
3 将node中编码格式修改为客户端格式
res.writeHead(200,{
"Content-Type":'text/html;charset=utf-8' })
4 __dirname 指向被执行的js文件的绝对路径