三阶段复习

三阶段复习

三阶段复习

**   **

1.数据库   关系型数据库

mysql  数据库管理系统

SQL  结构化查询语句

数据库中存数据,主要是表,表里面有行和列

一行就表示一个实体,用主键约束来区别每个实体

一列代表一个实体的属性。

2.如何数据有效性

**    **** **   数据可靠性+数据有效性

3.主键约束,唯一约束可以保证每一行数据有效

default not null

外键约束

先有主表(必须有主表),再创建从表(外键关联主表的·主键)

4.数据类型

int float double bigint

char (固定长度,如果缺少长度,自动补充空格)  varchar(可变长度) text

date datetime

5.sql  语句

DDL  数据库定义语言  create

DQL  数据查询语言 select

DML  数据库操作语言  updata delete insert  洗表

DCL  数据库控制语言   权限管理

6.三大范式

列不可再分(值必须唯一,不可再分),行不可重复(主键)

非主键列必须依赖主键列(非主依主)。一张表代表一个实体

非主键列直接必须相互独立(非主独立),列和列之间的数据,不应该相互影响,相互矛盾。

7.nodejs  是一种后端的平台,用来搭建后端服务器

主要依赖 chrome v8 的 js  引擎

nodejs  支持 EMCAjs  语法, 不支持 dom 和 bom

通过安装各种中间件(middware,安装的,自己导出的模块),扩展服务器的功能 : 如果报错信息中有  middware  说明有插件没有安装   或者安装出了问题

express

配置 post

配置日志

配置标签页图标

路由

ejs

seesion

multer 上传文件的

fs  读写文件的

引入中间件

require(‘ ‘)  引入中间件 (package.json 中安装的)

require(‘本地路径’)  引入自己导出的模块 (module.exports 暴露导出的)

使用中间件

server.use()

8.分层

**   ** r(router) + MVC (model  view  controller)

**       指路            数据     视图 ejs    业务**

业务(控制层):(从路由得到前端信息,交给数据层处理,自己只管处理出来的结果)

9.ejs  后端的   动态渲染页面

res.render(‘模板名字’,{传给模板的数据})

10.ajax  前端的

异步的,服务器返回的结果,在 ajax 外面得不到的

jq 的 ajax 可以返回  promise 对象,解决了这个问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 回调
$.ajax({
url,
type,
data,'name=val&name2=val2'
contentType,
processData,
success,
error
})

// promise
$.ajax({
url,
type,
data//'name=val&name2=val2'
}).then(function(data){}).catch(function(err){})

–原生的

**    1.创建 xhr 对象 (兼容性)**

**    2.创建监听状态改变的事件**

**    3.1  打开请求**

**        3.2 post 设置请求头**

**    4.发送请求 (post 发送的 data)**

11.ejs  比  ajax  少一次请求

ejs 直接请求数据,渲染页面返回

ajax 先请求页面,页面再发 ajax 请求

12 session  和  token

什么时候存 -登录成功 req.session.xxx=xxx

什么时候去 -访问接口 req.session.xxx

什么时候销毁   退出登陆  req.session.destroy

=== req  获取参数

get 参数::req.query

post 参数: req.body

===  响应 res

1
2
3
4
5
res.send() //返回给ajax xhr。responseText 解析出错。
res.json()
res.redirect() //重定向 如果是ajax请求,返回页面的话,可以通过location.href
res.render('ejs模板名',{数据})
res.end() //会话结束

**13 promise **

1
2
3
4
5
6
7
8
9
10
11
new Promise(function(resolve,reject){
if (...) {
resolve(data1)
} else {
reject(data2)
}
}).then(function(data1){
data1 //就是resolve的参数
}).catch(function(data2){
data2 //就是reject的参数
})

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!