引入:前后端分离:( 前端:写页面;请求数据;数据处理;后端:写 api 接口)
补充:学完 express,可以看koa 这个框架。
实现:登陆接口
express入门
1、安装express, 引入第三方框架
npm install express --save
⚠️ 第三方模块引用加载规范(首先在当前目录的node_modules 依次向上寻找)。
2、代码部分
const express =require('express')
const app=express() // express 实例化
const bodypaser=require('body-parser')
// app.use 使用中间件(插件)
// 解析表单数据 x-www-form-urlencode
app.use(bodypaser.urlencoded({ extended: false }))
app.use(bodypaser.json())
get接口
app.get('/user/login',(req,res)=>{ // 最简单的api 接口
// 接受get 参数 :通过 req.query 接收
console.log(req.query)
console.log('你好')
let {us,ps}=req.query
// 处理数据
if(us==='wangyi'&&ps==456){
res.send({err:0,msg:'login ok'})
}else{
res.send({err:-1,msg:'us pass no ok'})
}
})
post接口
app.post('/user/reg',(req,res)=>{
// 接受post 数据 :消息体 请求体 通过req.body接收
let {us,ps}=req.body
console.log(req.body)
// express 不能直接解析消息体,需要第三方插件body-parser.
// 通过第三方的插件实现解析
if(us==123&&ps==123){
res.send({err:0,msg:'ok'})
}else{
res.send({err:-1,msg:'nook'})
}
app.listen(3000,()=>{
// 监听3000 端口 开启服务器
console.log('server start')
})
express路由:
https://expressjs.com/en/guide/routing.html
express-midelware 中间件:
共三种类型:1、内置中间件 static;2、自定义中间件,分局部和全局;3、第三方中间件(如body-parser)(拦截器)
作用:减少重复代码,可以理解为拦截器,中间件的内容,优先执行处理,切记一定要next(), 否则终止。
自定义中间件(全局)示例👇
自定义中间件(局部)示例👇
静态资源目录
指定一个目录 目录可以被访问 如,apache 下的(wwww路径)
提供资源的绝对路径
需用到:node内置模块: path 路径模块
实现绝对路径和相对路径的拼接:
const express=require('express')
const path=require('path')
const app=express()
// console.log(__dirname)
// console.log(path.join(__dirname,'./hehe'))
// app.use(express.static(path.join(__dirname,'./hehe')))
// 域名:3000, 直接指向,拼接后的静态目录,localhost:3000/hehe/...
app.use('/public',express.static(path.join(__dirname,'./hehe')))
// localhost:3000/public/hehe/...
app.listen(3000,()=>{
console.log('server start')
})
服务器相关总结:
服务器:1.就是一台电脑 2.还需要服务器软件(apach tomcat iis nginx node) 3.服务器ip 和端口号:一个程序占用一个端口号
局域网:也叫内网,服务器通过网线(或者无线)连接,每个电脑都会有一个IP。比如 学校,公司
外网:(国内的网整个来看也是个局域网)
ip: 确定服务器主机的位置
端口号:确定服务器中某一个程序
api 接口的构成要素:
ip, port, pathname ,
method: get post
接受用户传递的数据
模拟post请求: postman工具
接收参数👇
接受get 参数 :通过 req.query 接收
接受post 数据 :消息体 请求体 通过req.body接收,
- ⚠️ 通过express 不能直接解析消息体,需要第三方 body-parser 插件进行解析
接收post请求参数的几种数据格式 : json x-www-form-urencode formdata ,注意:前后端数据要统一。