阿飞老师nodejs语录3——express重点整理

作者:admin     发表时间:8/20/2019

 * 安装 npm i express -S

* 基础服务的搭建

    - 引入express const express = require("express")

    - 执行express创建应用 let app = express()

    - 监听端口

        - 本地测试 默认协议和ip http://127.0.0.1

        - 服务购买之后,有对应的公网IP

        - 本地测试的端口尽量使用2000以上

        - 服务器端口 http默认80 https默认443

    - 监听路由

        - req

            - req.session  引入express-session后使用

            - req.params 常用来处理同一种类页面的请求

                - /:name 路由中使用 可以多级/:name/:firstname

                - req.params 在callback中获取 req.params.name req.params..firstname

        - res

            - 返回客户端 res.send() res.sendFile()

            - 返回模板文件 res.render() 与模板引擎配套使用

            - 同一callback中res.send() res.sendFile() res.render()不能执行2次,否则报错

                - 必要时可以用return解决

* 中间件

    - use方法 app.use((req,res,next)=>{})

        - 入口和处理分离

            - app.use(require("./middleware/mid")

            - module.exports = (req,res,next)=>{}) 

* 子路由

    - app.use(path,require("./routers/..."))

    - let router = express.Router()

      router.get("/",(req,res)=>{})  // 这里的/为app.use的path

      router.get("/zlx",(req,res)=>{})

      router.use("/articles",require("./...")) //继续设置子路由

      module.exports = router

    - app.use 和 router.use使用上没有区别

* 各种监听路由的方式

    - app.get

    - app.post

    - app.all (所有请求类型)

    - app.route (需要的请求类型) app.route(path).get().post()...

* 数据的接收

    - express两个常驻的中间件,作用是格式化数据,只要是数据交互的都写上

        - app.use(express.json());

        - app.use(express.urlencoded({extended:true}));

    - req.body

    - req.query 发送请求?后面的就是query,如果post请求也带了?,query也能接收到

    - {...req.body,...req.query}

* 静态资源

    - 内置中间件配置静态资源 express.static(path)

* 404处理

    - 重定向 res.redirect

    - 入口最后对404的监听 也就是所有静态资源和路由都没有监听就转404

* 跨域

    - 用request代理 前端=》自己后端=》目标后端

    - 在请求的后端设置里面加上 "Access-Control-Allow-Origin" : "允许的源"

        app.get(path,(req,res)=>{

            res.set({"Access-Control-Allow-Origin" : "http://localhost:63342"})

        })

评论