引入:前后端分离:( 前端:写页面;请求数据;数据处理;后端:写 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 ,注意:前后端数据要统一。