二阶段week6-node.js

130 阅读5分钟

week6笔记汇总 day026

1.官方模块:http模块:搭建出一个http协议的服务器

//固定套路:
//引入模块:
var http=require("http");
var url=require("url");
var fs=require("fs");
//创建服务器
var app=http.createServer();
//监听端口
app.listen(80)
//为服务器绑定请求事件
app.on("request",(req,res)=>{//前端发来一个请求就会触发一次
	var objUrl=url.parse(req.url)
	var router=objUrl.pathname;
	if(router=="/"||router=="/index.html"){
		fs.readFile("文件路径",(err,buf)=>{
			res.end(buf);//响应给客户端
		})
	}else if(router.match(/html|css|js|jpg...)!=null){//路径到底怎么写怎么拼接
		fs.readFile("./public"+router,(err,buf)=>{
			res.end(buf);//响应给客户端
		})
	}else if(router=="/getNews"){
		获取所有的新闻相关的数据
	}else if(router=="/insertNew"){
		插入了一条新闻
	}else if(router=="/login"){
		登录
	}else if(router=="/register"){
		注册
	}
})

2.自定义模块:

1.文件模块:require("./模块名");
2.目录模块
		创建一个必须名为node_modules的文件夹,里面再创建xx文件夹,里面在创建index.js公开自己需要公开的成员,主模块引入:require("xx");--此步骤由机器适合用
3.npm:第三方模块管理器:
	下载:npm i 包名

day027

1.概念:

同步交互:用户向服务器端发起请求的时候,知道服务器进行响应的全过程,用户是不可以做其他s事情的(等)
	典型:网址请求、表单请求 - 目前我们一直都在使用同步交互
异步交互:用户向服务器端发起请求的时候,知道服务器进行响应的全过程,用户是可以做其他事情的(不等)
ajax:asynchronous JavaScript and XML;直译:异步的js和xml -前端技术
不严格的定义:页面不会完整的刷新,只会导致局部页面发生变化
我们见过的异步技术/代码:
	1.定时器:定时器里面的内容再耗时也不会卡住后续代码 -做特效
	2.ajax:目的:在不刷新页面的情况下就和服务器进行交互/沟通 - 我们哪怕不用表单提交也能和服务器端对话了,可以将服务端的数据放到前端

2.如何使用:固定步骤:

1.创建ajax的核心对象XMLHttpRequest;
	var xhr=new XMLHttpRequest();
2.建立和服务器端的链接
	xhr.open("GET","路由");
3.向服务器端发送请求
	xhr.send();
	特殊:GET请求:xhr.send()会失效,但是还不能省略。必须写为xhr.send(null);请求消息需要放到路由后面
		xhr.open("GET","路由?key=value&key=value");
4.绑定状态监听事件
	xhr.onreadystatechange=()=>{
		if(xhr.readdState==4&&xhr.status==200){
			xhr.responseText; - 得到服务器响应的文本
		}
	}

day028

1.XML数据格式:

1.面试题:HTML、XHTML、DHTML、XML分别是什么
	HTML - 网页
	XHTML - 更严格的网页
	DHTML - 动态的网页:D:Dynamic - 现有技术整合的统称,让网页在离线版本依然具有动态特效(DHTML:HTML+CSS+JS(dom))

	XML - 配置文件|数据格式
			期数保存数据有两种方式:
				1.把数据放到数据库
				2.把数据保存在一个文件之中.xml文件
2.如何使用xml:
	1.创建xx.xml文件
	2.必须写上生命标签<?xml version="1.0" encoding="utf-8"?>
		version - 版本号:目前的版本只有1.0和1.1
	3.必须写上【一个】根标签,而且只能写一个根标签,没有任何的预定义标签,所有的标签都是自定义的
	4.里面想写什么内容都可以

	需要使用node.js去读取存储好的xml文件,响应给前端
	前端依然使用ajax去访问node.js,接住响应的数据必须写为xhr.responseXML -得到一个dom对象,可以使用核心DOM进行解析
	缺点:核心DOM语法解析XML非常繁琐

2.**JSON数据格式:JavaScript Object Notation:js对象表示法,本身就是js的一部分

	作用:数据格式类似XML
	优点:比XML更简介,更快、更容易解析--一个优秀的数据格式/结构能极大的提升我们程序员的开发效率
	属于【字符串】数据表示法
	1.后端的操作:哪些数据JSON字符串:后端把数据库的数据取出来,整理为一个JSON字符串:
		1'[1,2,3,4,5]'
		2'{"key":value}'
		3'[{},{},{},{},{}]'
		4'{"names":["代老师","冉老师","卢老师"]}'
	2.怎么才能变为JSON字符串:
		*JSONstringfy(x);
	2.前端:依然使用ajax去获取数据,但是真正重要的是xhr.responseText;
		拿到JSON字符串并不方便我们获取数据,(转为数组或对象)
			1.eval("("+jsonText+")")
			2.*JSON.parse(jsonText);

3.h5十大新特性

一、语义标签

二、增强型表单

三、视频和音频

四、Canvas绘图 - 数据可视化,比如饼状图,柱状图,曲线图... 有现成的框架,echars.js三阶段就会学习

五、SVG绘图 - 画小图标 - 我们画的丑,但是网上一大堆

六、拖拉API

七、WebWorker

八、WebStorage:客户端存储技术/前端存储技术:
	1、其实有两种:
		1、把数据放在location的查询字符串里面
		2、cookie技术:几乎淘汰了,解析方式非常麻烦,能存储的大小2kb
		3、WebStorage:使用起来简单快速,解析方便,能存储4mb
			作用:1、能在客户端存储数据
			          2、跨页面也能使用
			分两大类:
				1、sessionStorage - 会话级,浏览器一旦关闭数据就会死亡了
				2、localStorage     -  本地级,永久存储此数据

			操作:xxxStorage是一个对象
			    保存:xxxStorage.属性名=属性值;
			    读取:xxxStorage.属性名
			    删除:xxxStorage.removeItem("属性名");
			    清空:xxxStorage.clear();

九、WebSocket

十、地理定位 - 百度/高德地图

day029 1.GET:显示在url地址上。安全性低,大小有限2kb 找别人拿东西,跟安全性不挂钩:比如搜索框、ajax往往都是在找别人拿东西 2.POST:安全性高,大小无限制 只要跟安全性相关的,都用post:登录/注册