express 框架写api

引入:前后端分离:( 前端:写页面;请求数据;数据处理;后端:写 api 接口)

补充:学完 express,可以看koa 这个框架。

文档:https://expressjs.com/

实现:登陆接口

 


 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 ,注意:前后端数据要统一。

 


 


 

posted @ 2020-06-11 18:18  CatherLee  阅读(875)  评论(0编辑  收藏  举报