中间件
中间件 middleware (拦截器) 中间的插件
中间件的本质是一个函数
一般情况下有三个参数 req res next
中间件的分类
1. 自定义中间件(middleware)
2. 内置中间件(仅有静态资源路径一种)
中间件 middleware
middleware (拦截器)
function middleware (req,res,next){
//如果没有next() 就会被拦截 后边的不执行
next()
}
app.get('/test',中间件1, 中间件2,(req,res)=>{
console.log(111)
})
app.use(middleware)//全局使用自定义中间件 放到起始位置使用
静态资源路径
app.use(express.static(path__)) “第一个参数是网络访问路径 第二个是express.static(文件夹的绝对路径)”
在express中 内置中间件只有一种(静态资源路径 PHP www目录)
指定一个文件夹 让该文件夹和www目录有相同的功能
app.use()的第一个参数路径为根路径”/”时可以省略不写
app.use(‘网络路径’,express.static(文件夹的绝对路径,’/www’))
路由(中间件)
根据路径将代码进行拆分并模块化
将相关的api放到一个路由里
大概模式为
创建一个 Router.js模块文件
内容为
const express = require('express')
const router = express.Router()
router.get('/login',(req,res)=>{
....
})
module.exports= router
server文件引入自定义router模块
const Router = require('自定义模块路径')
app.use(‘网络路径’,Router)
node中跨域问题
因为浏览器的同源策略 所以会有跨域问题(协议 域名 端口)
jsonp script 里的src不受同源策略影响 需要提供接口的后端参与
cors 设置请求头 需要提供接口的后端参与
服务器代理 (正向代理 反向代理) 服务器之间的请求没有跨域问题
长连接
数据库
关系型数据库 mysql 甲骨文...
非关系型数据库 redis MongoDB(文档型) nosql
mongodb 数据库名
mongod 命令行命令(启动数据库)
mongo 命令行命令(命令行中链接数据库)
mongoose 第三方模块(node用来链接数据库的)
mongodb 的格式
数据库>数据表(集合 collection)>数据(文档 document)
mongodb 的基本命令(增删改查)
数据库
show dbs 显示所有的数据库
db 当前选中的数据库
use dbName 新建(切换)一个新(已有)数据库 如果数据库里没有东西 则这个数据库是个临时的数据库
db.dropDatabase() 需要先选中想要删除的数据库 再执行此命令 删除数据库
集合
db.createCollection('集合名字') 在数据库里创建一个集合
show collections 显示该库下所有的集合
db.集合名.drop() 删除指定集合
db.集合名.insert(data) 在指定集合中增加数据
文档