- 扩展:H5提供的通信方案
- 聊天室案例
- 服务端 【socket】
- 客户端
- html文件 展示 服务端 [用来展示html文件]
- ws
- 是H5的一个通信协议
- 协议
- http
- https
- tcp
- ws
- 聊天室案例
- 扩展:低版本pc浏览器使用的socket.io
配置静态资源目录
app.use(express.static(目标目录的磁盘路径))
数据库
数据库用来做什么?
答案:存储数据
-
分类【有没有表】
- 关系型【Sql】数据库
- 代表:mysql
- 组成
- 数据库/表/行
- 非关系型【NoSql】数据库
- 代表:MongoDB
- 组成:
- 数据库/集合/文档
- 文档中存储的是键值对,类似json
- MongoDB中数据类型为:bson
- bson是json的超集,可以存储二进制 【 图片 视频 音频 】
- 关系型【Sql】数据库
-
分布式
- 前端:类似 模块化
- Java:微服务、分布式 springboot【框架】
- 大数据:微服务 分布式 hadoop 【框架】
- php: ThinkPhp 【框架】
-
MongoDB
- show dbs 显示数据库列表
- use databasename 如果数据库不存在 创建数据库,否则切换到指定数据库
- show collections 显示数据库中的集合
- 添加数据
- db.users.save()
- db.users.insert()
- save()和insert()也存在区别,如果新增的数据主键已经存在,insert()会不做操作提示错误,而save()则更改原来的内容为新内容
- 删除数据
- db.users.remove({}) 删除users集合下的所有数据
- db.users.remove({name:“123”}) 删除users集合下name=‘123’的数据
- db.users.drop()或db.runCommand({drop:“users”}) 删除集合users
- db.runCommand({dropDatabase:1}) 删除当前数据库
- 修改数据
- db.users.updata({name:“a1”},{$set:{sex:“women”}},true,true) 修改name=a1的数据为sex=women,第一个参数是查找条件,第二个参数是修改内容,主键不能修改,第三个参数表示匹配所有符合条件的数据,第四个参数表示修改所有匹配到的数据
- 查找数据
- db.users.find().skip(2) 从某一位开始截取
- db.users.find().limit(2) 从开始截取2位
- db.users.find().sort() -1降序 1升序 sort的优先级高于skip、limit
- db.collection.find().limit(5) 控制返回结果数量,如果参数是0,则没有约束,limit()将不起作用
- db.collection.find().skip(5) 控制返回结果跳过多少数量,如果参数是0,则当作没有约束,skip()将不起作用,或者说跳过了0条
- db.collection.find().skip(5).limit(5) 可用来做分页,跳过5条数据再取5条数据
- db.collection.find().count() count()返回结果集的条数
- db.collection.find().skip(5).limit(5).count(true) 在加入skip()和limit()这两个操作时,要获得实际返回的结果数,需要一个参数true,否则返回的是符合查询条件的结果总数