1. vs code 里面如何切换自定义终端?
2. 浏览器 vs node
异:
- node里面没有 BOM DOM
- node多了很多自带的api
同: - 都是chrome v8
- 都支持js
- 都支持 ECMA Script
3. 需求: sum这个方法, 我想三个参数 , 计算三个参数值?
- Node.js 命令行有时候用起来不方便
- 解决: 我们使用文件 .js
Node.js命令行退出
- two times ctrl+c
Node.js文件运行
node 文件名称(后缀可以不要)
键盘上下键可以前进和回退命令
自动监听(自动更新, 自动刷新)Node.js文件的更新和变化( 工具 nodemon supervisor)
使用淘宝镜像
- 工具安装
cnpm i nodemon -g (i==> install g ==> global) 推荐
cnpm i supervisor -g - 使用:
nodemon 文件名称
supervisor 文件名称 - 注意事项:
问题: supervisor 会出现死循环 ?
分析: 内容一致在改变
解决: vs code 开了自动保存
nvm 使用
- 安装:
nvm install vsersion
举例: nvm install v10.8.0 || nvm install 10.8.0 || nvm install latest(最新版本) - 切换Node.js版本
nvm use vsersion
举例: nvm install v10.8.0 - 查看当前电脑中 Node.js的所有版本
nvm list
前端模块化(面试题)
- CMD ( sea.js )
- AMD ( require.js )
- Common.js
- es6模块化
CMD 和 AMD
define 定义模块
Node.js中使用了Common.js规范(三类) - 内置的
- 第三方的
- 自定义的
前端的环境
- 开发环境
- 生产环境
- 测试环境
- 预发布环境
- 上线环境
问题: Node.js中请求数据, 需要跨域吗?
不需要跨域的
同源策略
- 为什么会出现跨域
开发中会有不同的域名和端口等出现?我们需要去获取他们的内容 - 浏览器如何组织跨域
浏览器具有安全策略 —》 同源策略实现 - 跨域的范围是?
浏览器
问题: 为什么要有 package.json?
分析: 帮助我们记录第三方的内容
即使没有node_modules也可以下载
自定义模块的发布
package.json —> 当前项目的依赖包 兵哥
package-lock.json —> 当前项目依赖包的具体信息 兵哥的具体信息
Node.js是单线程
主线程
异步队列: Node.js中异步任务, 放在异步队列
注意: 优先执行主线程中任务, 主线程任务结束后, 再去执行异步队列中任务
Node.js内置了很多的模块
fs(文件系统)
path( 磁盘路径 )
http( 通信 )
使用
- 导入
const 变量名称 = require(‘模块名称’) - 使用模块的api
Node.js中第三方模块如何使用?
1. 安装
- 初始化生成 package.json
- 安装对应的包
举例: npm i request -g/-D/-S
名词说明:
-g -global 全局
-D / --save-dev 开发环境
-S / -save 生产环境
2.导入
request 用来做数据请求的
使用
去看文档(www.npmjs.com)
总结
- 使用Node.js实现一个web服务器
- Node.js中模块的api很多时候可以连缀(链式调用)
- http
- createServer 创建一个web静态服务器
- listen 是用来监听当前服务器
- 名词解释
- port 端口
- hostname: 域名
- request 请求, Node.js请求谁
- response 回应]
- data 数据
- encoding; 编码方式 utf8 默认utf8
- write(data,encoding) 给前台发送一个内容
- end() 发送已经结束了
- 坑
中文乱码问题
解决方案一:
response.writeHead(200,{
‘Content-Type’: ‘text/html; charset=UTF-8’
})
解决方案2:
response.write(’ ')
url
url:
用来做 浏览器 地址 解析的
api:
parse : String --> Object
format: Object —> String
resolve: url拼接
完整的url构成:
https: // www.web-yyb.top: 8080 / vue / index.html ? a=1&b=2#a=10
协议: https
域名: www.web-yyb.top
端口: 8080
路径: www.web-yyb.top: 8080 / vue / index.html
查找字符串: a=1&b=2
哈希: #a=10
qs
干什么:
进行string 和 object 的格式
功能:
类似JSON.parse || JSON.stringify
api:
parse
stringify Object —> String
escape
unescape
名词
encoding 编码
unencoding 解码
escape 中文编码
unescape 中文解码
get方法
http
格式:
http.get(url,callback)
on
原生js如何触发事件
DOM.onclick = function(){}
名词解释:
DOM: 节点
on: 添加事件的形式
click: 事件类型
function(){}: 事件处理程序
chunk: 分片
try {} catch{} 高级编程 错误信息捕获