版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
一、为什么要学习node
- 工作的时候可能需要node
- 了解node或者其他后端语言的优先
- 自己做外包
- 防止被甩锅
- 防止被骗 , 外包时 , 降低价格 , 尾款基本可以不考虑
二、node是什么
- node是一个平台
- 一门语言的能力取决于平台
- 游览区 js bom dom ajax histroy
- node js fs 数据库 …
三、node有什么作用
- api接口 web 服务应用
- 静态资源目录 web服务器 (Apache)阿帕奇 IIS ngnix
四、node 基础知识
* node chorme v8 运行js
libuv fs http
* 模块开发
一切万物皆模块(对象、组件)
* commonjs (AMD cmd)
使用模块开发的三步
- 创建模块
- 抛出模块 module.exports=…
- 引入模块 require(name)
五、内置 自定义 第三方
内置
- fs 对文件和文件夹的增删改查
- 绝对路径 path
- url querystring 对象和字符串转化
- http : 爬虫 跨域代理 : 服务器端没有跨域 创建一个服务器
- stream : 数据流传输 fs.读写流 文件的拷贝操作
- zlib 压缩
- events
自定义
按照格式根据自己的功能需求来创建模块
邮件
token
第三方
- body-paeser 解析数据
- cors 跨域
- nodemail 邮件验证码
- cheerio 爬虫
- bcrypt 盐加密
- mongodb 操作数据库
- mongoose 操作数据库
- express node的一个框架
如何选取第三方模块
- 用户用的多的
- 经常更新的
express 通过express来实现一套api接口
api接口的功能
后端: 获取数据 处理数据 返回数据
前端: 请求api接口 携带数据 获取数据进行处理
六、Network 防甩锅指南
-
reponse 返回数据格式正确 锅不一定是谁的 格式不正确 , 一定是后端的锅
-
request url
content-type www-form-urlencode json数据格式 判断数据格式是否同意
携带数据 看header里最下面 数据格式是否是后端要的数据
前后端 甩锅区域 : 请求数据 和 返回数据删除功能 :
根据状态值 err 判断 OK 还是 no OK
hehe
- 获取数据
1. 数据格式统一
2. 请求方法统一
3. 字段名统一 - 处理数据
数据库的操作
- 安装数据库 缺少文件 c:data/db(具体看报错信息)
- 命令
mongod
mongo 通过命令行的方式连接数据库
db:
show dbs
db
use name
drop
conllection
createCollection('name')
show collections
document
- find()
- insert()
- remove()
- updata({条件},{修改内容},{全局修改})
- skip limit sort
- $lt gt gte lte ne
- $in
- $set
- $and
- $or
node 操作数据库
mongodb
mongoose
1. 连接数据库
2. schema 对象
3. schema => model 数据表复数 一个表对应一个model
model.find({})
model.remove({})
异步回调地狱 通过promise的链式调用解决 众多方法中的一个
在then不要做错误的处理 res send (no OK) thorw error 在catch 做错误的处理
- 返回数据
1. 按照规范
2. {err: 状态码 错误码 , msg : }
路由的配置
静态资源路径的配置
内容拓展
邮件验证码的实现逻辑 (邮件 , 手机 , 图片)
用途 : 防止恶意注册
- 服务端产生code
- 通过某一个方式发送给用户
- 用户注册的时候提交信息携带code
- 验证code正确
token 验证逻辑
安全性高 解决无状态请求 知道发起请求的用户是谁
express 中间件