目录
node
是基于chome(谷歌浏览器)的v8引擎 来实现的一个javascript运行环境(这个环境可以单独的在任何操作系统上运行 从而可以让js的触角延伸到服务器端)
node能在服务器端运行js有啥用?
因为js默认情况下不能直接读取本地计算及硬盘上的东西 但是node可以让js运行在服务器端 那么node就把js变成了服务器端语言 那么js就可以读取计算及硬盘上的东西(可以访问数据库)
node特点
单线程
非阻塞式io
事件驱动
node的安装
repl交互性解释器
就是可以在cmd中来写js代码 因为node是一个js的运行环境 可以让js在脱离浏览器的情况下来单独运行
node怎么运行js代码?
1.cd 到你要运行node的文件夹下
2.在cmd中输入 node空格你要运行的js文件名 即可运行
魔术变量/预定义变量
就是node提前定义好的一些变量 代表某些操作
__dirname 运行这个文件的文件夹的绝对路径
__filename 当前js脚本文件的绝对路径
express框架
基于node的一个企业级应用框架 他里面封装了大量的http相关工具可以让我们非常方便的创建出 对需要的后台服务
1.下载 npm install --save express
2.创建一个文件夹名字随便起 用来存放我们的后台路由文件 并且创建路由文件
// 1.引用express
let express=require("express");
// 2得到路由功能
let router=express.Router()
// 3.创建对应的后台路由接口 req请求 res相应
// router.get("后台接口名",function(req,res){
// 你的逻辑
// })
router.get("/user/zhuce",(req,res)=>{
res.send({msg:"注册"})
})
// 4.暴露
module.exports=router
3.创建http服务并且把这些路由全部关联起来
// 1.引用express
let express=require("express")
let app=express()
// 2.引用路由文件
let demoa=require("./router/demoa.js")
let demob=require("./router/demob.js")
// 3.使用路由
app.use("/denglu",demoa)
app.use("/zhuce",demob)
// 4.设置端口
app.listen(8888)
mongodb
mongodb是什么?
是一个数据库
非关系型数据库
关系型数据库 mysql oracle sqlserver db2
非关系型数据库 mongodb redis
关系与非关系型数据库区别
关系型 默认情况下慢 稳定性高 背靠大山 库 表 字段
非关系型 默认情况下快 稳定性低 单打独斗 库 集合 文档
添加服务: mongod.exe --install --dbpath 你存储的数据目录(你刚才新建的db文件夹路径) --logpath 你的数据目录(你的data文件夹路径)\log.txt
操作
增 insert
db.集合名.insert({key:val,key2:val2})
删
db.集合名.remove({你要删除的key:你要删除的对应val})
改
db.集合名.update({你要修改谁的key:你要修改谁的val} , {$set:{改那个key:"改的val"}})
查 find
db.集合名.find()
limit 读取指定条数的数据
skip 跳过指定数量的数据
mongoose
是一个插件 用来方便我们使用node连接mongodb
1.下载 npm install --save mongoose
token
就是一段用于保存用户登录状态的加密字符串
JWT----jsonwebtoken 来生成加密的字符串
下载 npm install --save jsonwebtoken
生成token
sign(你要加密的数据,秘钥(越乱越好))
登陆成功之后生成一个包含登录状态的token
解密token
verify("你要解密的token",加密时候的秘钥,回调函数)
restful api
在传统的数据交互过程中 用到get/post请求 但是get/post 并不能很好的描述这个请求
restful api通过他 就可以简单的来进行对于当前接口的作用进行描述
GET 读取数据
POST 发送数据
PUT 修改 全部修改
PATCH 修改 部分修改
DELETE 删除