1、为个什么学习node ?
-
动态网页:数据可以进行交互,动态改变数据
-
通过 node了解前后端数据交互(后台如何返回接口)
2、什么是node?
-
node是基于chrome的V8引擎的JavaScript运行环境
-
node中的事件机制以及非阻塞式的I/0式模型,使其轻量又高效
-
node中的npm是全球最大的包管理器
-
注:V8引擎是刘览器内核中的引攀,分为渲染引擎和脚本引擎
3、node的版本:LTS 稳定版本 10.15.2 (大版本号 小版本号 补丁)
4、nodeJs和浏览器中的JavaScript的区别
-
在node中没有B0M和DOM的概念,因此不会涉及兼容;
-
在浏览器中没有node中global、process等属性;
-
node可以用来搭建服务器,数据库;
-
node可以用来调用底层的API,可以做文件的读写等操作;
5、node的优缺点
-
缺点:不适合做大计算的项目
-
优点:高效,速度快,适合做高并发的项目 (node做中间层)
6、node的交互模式
-
进入:node回车
-
退出:ctrl /2次 或ctrl + d /1次
7、node如何运行JS文件:node 文件名
8、node搭建简单服务器
http.creatServer((req, res)=>{}).listen(9000); // 凡是经过指定IP访问的服务,均执行该回调
---req
request 请求
req.url 请求的地址
req.method 请求的方式
req.headers 请求头
req.body 接收post传递的参数
req.query 接收get传递的参数
req.request 接收任意方法传递过来的数据
---res
response 回应
res.write() 回复响应信息(可以调用多次)
res.end() 结尾(只能调面一次) 只支持字符串
res.statusCode 设置状态码
res.setheader()设星响应头
res.writeHeed() 前两者的综合写法 [参数1为状态码content-type,参数2为响应头的类型]
注:响应头的类型
text/plain、text/html、text/css、application/x-javascript、application/xml、image/png.jpg.gif、application/json
9、模块化(如何导出/接收模块)
-
requireJs - 异步 - AMD
-
seaJs - 异步 - CMD
-
CommonJs - 同步 - common
-
ES6 module - 同步 - import
10、node模块分类
-
核心模块:内置模块,直接引入
-
自定义模块:一般带./路径
-
第三方模块:先安装再引入
11、npm常用操作 [下载包]
-
cnpm install package.json 依赖安装
-
cnpm install <包名> -g 全局安装
-
cnpm install <包名> --save -dev 局部安装
-
cnpm uninstall <包名> 卸载
-
cnpm update <包名> 更新
-
cnpm clear cache 清除缓存
12、向npm官网上传包
-
创建项目文件夹
-
目录下打开cmd, npm init 后一直回车直到出现package.json 文件
-
创建文件
-
npm login (登录npm账号)
-
npm publish (上传)
13、yarn:缓存了每个下载过的包,所以再次使用时无需重复下载,同时利用并行下载以最大化资源利用率,因此安装速度更快 (缓存、异步)
-
cnpm install yarn -g
-
yarn install (相当于cnpm install)
-
yarn add <包名> (相当于cnpm install <包名> -S)
-
yarn add <包名> -dev 局部安装
-
yarn upgrade <包名> 更新
-
yarn remove <包名> 删除
14、热部署工具全局安装:使服务器自动挂起
npm install supervisor -g