res.render
1. 语法 res.render( 模板文件 路径,{要渲染的数据})
2. 会默认去views目录下去找
3. 如果想去他们目录找需要设置一下
4. app.set("views",你要修改到的目录)
路由
告诉你去哪里
对于前端 主要是导向告诉浏览器去哪
对于后端 可以理解为一个子服务 一个路由就是一个小的服务 处理一个接口
配置
let express = require('express')
let router = express.Router()
router.get('/',(req,res,next) =>{
console.log(`我是A js 文件里面的 跟 `);
res.send()
})
router.get('/a',(req,res) =>{
console.log(`我是A js 文件里面的 a`);
res.send()
})
router.use('/b',require('./b')) //在A文件里面 在加载 A文件的子路由
module.exports = router
使用
app.use('/a',require('./a'))
.all() 方法
可以拦截所有的请求 若想放行就 next()执行
注意代码的解析顺序
MongoDB
1.是一个基于分布式文件存储的数据库 , 由C++ 语言编写
2.是一个介于关系数据库和非关系数据库之间的产品
关系型数据库
表就是关系
或者说表与表之间存在关系
所有关系型数据库都需要 sql 语句来操作
所有关系型数据库在操作之前都需要设计表结构
数据表还支持约束
1.唯一的
2.主键
3.默认值
4.非空
非关系型数据库
- 非常的灵活
- 有的 非关系型数据库 就是键值对
- MongoDB是最像关系型数据库的 非关系型数据库
- 数据库 -》 数据库
- 数据表 -》 集合(数组)
- 表记录 -》 (文档对象)
- MongoDB 不需要设计表结构
- 也就是说你可以任意往里面存数据 没有结构性这一说
- 可以有很多数据库
- 一个数据库中可以有多个集合(表)
- 一个集合中可以有多个文档(表记录)
- 文档结构很灵活没有任何限制
- MongoDB 非常灵活 不需要想MySQL 一样先创建 数据库 表 设计结构 在这里只需要插入数据的时候 指定往哪个集合操作就可以 一切 有MongoDB 来操作
安装 官网去下载官网
安装完以后 需要配置环境变量
检查
命令行 输入 mongod --version
mongodb 默认使用执行 mongod 命令所处盘符目录下的
/data / db 作为自己的数据库存储目录
如果没有这个目录 第一次 手动建一个 /data/db
如果想要修改默认的数据存储目录
mongod --dbpath=你要修改的路径
启动和关闭数据库
启动
在命令行 输入 mongod
关闭
ctrl + c
连接数据库
在命令行 输入 mongo
退出数据库
exit
操作命令
操作命令 (操作库)
show dbs 查看数据库列表
use 数据库名称 切换到指定的数据库 ( 如果没有会新建)
db 查看当前操作的数据库
db.dropDatabase() 删除当前库
db.version() 查看数据库版本
集合(表)操作命令
建:db.createCollection('表名',{配置})
//配置:{size:文件大小,capped:true,max:条数|文档数} capped定量
//db.表(集合).isCapped() 返回 true/false 是否是定量
查:show collections / db.getCollectionNames()
删:db.表|集合.drop()
文档操作命令
增
db.集合.save({}) //添加一条
db.集合.insert({}) //添加一条
db.insertOne({}) //添加一条
db.集合.save([{},{}]) //多条
db.集合.insert([{},{}]) //多条
//insert 不会替换相同ID save会
删
db.集合.deleteOne({要删数据条件描述}) //一条
db.集合.remove({},true) //一条
db.集合.remove({要删数据条件描述}) //多条
db.集合.remove({}) //清空表
改
db.集合.update({查询条件},{$set:{替换条件}},插入boolean,全替换boolean) // 如果第三个参数传个true 如果没有会插入
查
所有:db.集合.find(条件)
条数: db.集合.find().count()
去重:db.集合.distinct(key)
db.集合.find({条件},{指定要显示列区域})
指定要显示列区域
username:1 显示这个区域,其他不显示
username:0 不显示这个区域,其他显示
_id 是默认显示
排
db.集合.find().sort({key:1,key2:-1}) //升
db.集合.find().sort({key:-1}) //降
限定
db.集合.find().limit(number) //限定
db.集合.find().skip(number) //跳过
db.集合.findOne()//找第一个
db.集合.find().limit(1) //查询第一条