express
概述
express是一个提供web服务的框架(内置http模块),他简化了http的相关内容,将对应的内容封装
为了特定的方法。
中文网
express入门
安装
导入
入门案例
express里面相关对象
express(静态方法 服务相关方法)
urlencoded 转换body的数据
static 将静态资源变成一个服务
json 读取相关json文件
Router 返回一个路由对象
....
npm i express -S
const express = require('express')
//导入express 是一个函数
const express = require('express')
//createApplication 其实就是导出的express
let app = express() //应用对象
//根据对应的请求来进行处理 get 处理get请求 post处理post请求 put 处理put请求 delete 处理
delete请求
//传入路由地址 处理函数(请求对象 响应对象 进行下一步处理的函数)
app.get('/',(req,res,next)=>{
res.setHeader('content-type','text/html;charset=utf-8')
res.end('主页访问')
})
//监听端口 如果不传入对应的ip地址和端口默认ip为localhost 默认端口3000
app.listen(8080,'127.0.0.1',()=>{
console.log('当前服务已经启动');
})
application(应用相关方法)
方法
get 接收get请求
post 接收post
delete 接收delete请求
put 接收put请求
all 所有请求都可以接收
listen 监听对应的端口号
use 中间件使用(加载某些功能件加载到对应的应用使用中)
disable 禁用某个设置 disabled 是否禁用
//app中间件引入
app.use(express.urlencoded())//body数据获取及转换
//访问路径 不加默认为/
app.use('/public',express.static('./img')) //静态资源管理(默认情况不可以被外界访问)
app.use(express.json()) //json文件读取相关
let router = express.Router() //路由对象
enable 开启某个设置 enabled 是否开启
set 配置某个设置 get获取某个设置
app.route 路由规则加载
render 渲染
engine 模板引擎配置
request(请求对象)
app.get('/',(req,res)=>{
res.json({message:'get'})
})
app.post('/',(req,res)=>{
res.json({message:'post'})
})
app.delete('/',(req,res)=>{
res.json({message:'delete'})
})
app.put('/',(req,res)=>{
res.json({message:'put'})
})
app.all('/',(req,res,next)=>{
res.json({message:'all'})
})
app.set('a','a')
console.log(app.disabled('a'));
app.disable('a')
console.log(app.disabled('a'));
console.log(app.enabled('a'));
app.enable('a')
console.log(app.enabled('a'));
console.log(app.get('a'));
let router = express.Router() //路由对象
//中间件使用
app.use(router)
属性
req.body 获取请求体 (body-parser)
req.query 获取?后面携带的参数
req.params 获取/后面传递的参数
req.headers 获取请求头
req.cookies 获取对应的cookie
req.baseUrl 请求的根路径
req.method 请求的方式
....
//如果需要获取body里面的数据那么需要调用body-parse
//use 中间件使用
app.use(express.urlencoded())
response (响应对象)
方法
res.json 发送json数据
app.post('/test/:username',(req,res,next)=>{
console.log(req.body); //必须引入body-parase的中间件
console.log(req.query);//获取的是一个对象 ?传参
console.log(req.params);//获取是一个对象 :属性名 通过这个属性名就能获取对应/传递的参
数
console.log(req.headers);//返回是一个对象
console.log(req.cookies);
console.log(req.ip);
console.log(req.hostname); //调用urlencoded
res.send({
message:
'
post请求'
})
})
res.send 发送数据
res.jsonp json数据响应
res.render 服务器渲染(SSR)
res.redirect 重定向
res.status 状态码设置
res.append 追加响应
res.sendFile 发送文件
res.download 下载
res.sendStatus 发送状态码
...
router (路由)
方法
all
get
post
...