一,express
1.介绍
-
基于 Node.js 平台,快速、开放、极简的 Web 开发框架
-
提供web服务器 的功能 (路由,读取静态资源等)
-
html文件内容里含有变量或表达式,这样的html就叫模版 express常用 ejs模板
##2.名词解析
2.1反向代理
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定
2.2 服务器端渲染(SSR)
简单理解是将组件或页面通过服务器生成html字符串,再发送到浏览器,最后将静态标记"混合"为客户端上完全交互的应用程序
- 优势: 对seo友好 加载页面的速度快
- 缺点: 占用服务器的资源
2.3 BSR 浏览器端渲染
- 服务器只管提供数据(接口),渲染的工作是客户端来做
- 接口 (接口文档)
- 访问的接口地址
- 访问的方式(get post)
- 参数
- 返回值 res.json
2.4 前后端分离
- 服务器端只是提供数据(提供接口) res.json({key:value…})
- 前端负责拿到数据,并且负责渲染到html页面上来 (fetch 语法 fetch(url).then(callback)
3.ejs模板引擎
-
安装 npm i ejs --save
-
ejs模版默认是放在views的目录下 建立的模版文件 xxxx.ejs
-
设置使用ejs 模板 app.set(“view engine”,“ejs”);
-
更改模版的目录 app.set(“views”,“模版的目录”)
-
渲染模版
res.render(“views里的模版的文件名",{
key就是模版里的变量: 值
}) -
<%=变量%> 转义输出
-
<%-变量%> 不转义输出
-
<% js代码 %> 执行 js代码
4.中间件
-
用户发送请求和返回结果中间执行的函数或方法
-
中间件可以执行的功能很丰富,比如可以进行身份验证,参数的校验…
-
使用中间件 app.use([请求字符串],路由中间件)
-
提供的中间件,直接使用
- express.static
- express.Router
-
自定义中间件
- 拦截所有请求 app.use(function(){})
- 拦截特定请求 router.get("/xxx",(req,res,next)=>{ })
-
把express 的实例作为 http.createServer的中间件 http.createServer(app)
5.express生成器
-
安装 npm i express-generator -g (express --version 如果能看到版本号就是安装好了)
-
用生成器生成一个项目 express --view=ejs 项目的名字
-
进入并启动项目
cd 项目的目录 进入项目的目录 npm install 安装依赖 npm start 启动项目了 在浏览器里 http://localhost:3000 3000是默认端口
- bin/www 是启动文件
- public 项目的静态资源目录
- routes 路由中间件,帮我们处理用户的请求
- views 模板目录
- app.js 才是真正的项目执行的起点
- package.json 包的配置文件
-
获取用户提交的数据
- 获取用户get提交的数据 req.query.变量
- 获取用户post提交的数据 req.body.变量
二,mongodb
MongoDB是是非关系数据库当中功能最丰富数据库管理系统(文档数据库)
1.几个名词
- 文档(document) {key:value,key1:value2,key2:value3…}
- 集合(collection) 多个文档就构成了一个集合
2.安装
参数这个文档 https://www.cnblogs.com/keyi/p/10984514.html
-
安装完以后, 找到 安装目录下的 C:\Program Files\MongoDB\Server\3.4\bin
把这个路径设置到环境变量里(注意:千万不要删其他的环境变量)
3.启动
- mongod --dbpath 路径 mongodb服务器的开启命令 能看到27017就表示启动成功
- mongo 连接 mongodb服务器 ,并打开一个 数据库操作的命令行
4.常用命令
- 帮组命令
- help 当前数据库系统相关的帮助信息
- db.help() 数据库相关的帮组命令
- db.集合.help() 集合相关的帮助信息
2.退出命令 exit
3.清屏命令 cls
4.数据库和集合的相关命令
-
show dbs 显示数据库的名字
-
show collections 显示当前的数据库的所有集合的名字
-
use 数据库名 如果不存在这个数据库,就建立一个,如果存在就切换到这个数据库
-
db 显示当前数据库的名字
-
db.集合.insert({key:value,key2:value2…})
db.集合.save({key:value,key2:value2…})
-
批量插入文档
for(var i=0;i<10;i++){ db.集合的名字.insert({key:value.....}); }
-
查询命令
- db.集合.find() 显示当前集合的所有文档
- db.集合.find().sort({key:-1}) -1 降序 1 升序 查询并排序
- db.集合.find().count() 统计查询结果的文档数量
- db.集合.find().limit(每页的文档个数).skip(略过的文档个数 (page-1)*pageSize) 分页
- db.集合.findOne() 显示第一个文档
- db.集合.find({key:{ g t : v a l u e , gt:value, gt:value,lt:value}}) 多个键值对是并且的关系( $gt > $gte >= $lt < $lte <=)
- db.集合.find({$or:[key:value,key:value…]}) 多个键值对是或者的关系
-
删除命令
- db.集合.remove({key:value…}) {key:value…}表示条件
- db.集合.remove({}) 删除集合里的所有文档
-
修改命令
- db.集合.update({条件},{$set:{key:value…}},不存在是否新增,是否修改多个文档)
- db.集合.update({条件},{$inc:{key:value}}) 根据条件,增加(或减少) 满足条件文档的字段对应值
三,mongoose
Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具
1.官网 http://www.mongoosejs.net/
2.安装 npm i mongoose --save
##3.常用的数据类型
4使用
-
引入mongoose var mongoose = require(‘mongoose’);
-
连接数据库 mongoose.connect(‘mongodb://localhost/test’);
-
建立模型 var Model = mongoose.model(“集合的名字”,Schema,[集合改后的名字])
-
用模型进行增删改查
-
添加
-
添加一个文档
-
var M = new Model({key:value}) Model 是存放模型的变量,不是固定的。
M.save().then(callback)
或 new Model({key:value,key1:value1……}).save().then(callback)
-
-
一次添加多个文档
- Model.insertMany([{key:value},{…}…]);
-
-
删除 Model.remove…
-
修改 Model.update…
-
Model.find({条件}).then((res)=>{}) res是数组类型
-