关于javascript:day26express

9次阅读

共计 1534 个字符,预计需要花费 4 分钟才能阅读完成。

day26-express

概念:基于 nodejs 的 http 服务器封装好的框架

* 一、应用步骤

 下载:npm init ---->npm i express
导出:const express = require('express')
创立服务器:const app = express()
监听端口号:app.listen(端口号)
解决申请

二、申请的解决

***1. 路由办法 ----- 针对不同的申请形式,有不同的办法解决
    get    post    put    delete    all(解决任意申请,需齐全匹配)    use(解决任意申请,匹配结尾)

2. 门路匹配
    齐全匹配
    不齐全匹配 ---?--- 润饰后面字符最多呈现一次
    不齐全匹配 ---+--- 润饰后面字符起码呈现一次
    不齐全匹配 ---*--- 示意 * 占位的这个中央能够是任意内容
    正则匹配 --- 应用正则表达式代表门路
    ***restful 格调门路 --- 门路 /:id- 则此时 id 必传;门路 /:id?- 此时 id 非必传
    传统形式申请门路的 get 传递参数获取 -----req.qurey
    restful 格调传递参数获取 -----req.params

3. 处理函数
    应用一个函数解决此次申请
    应用多个函数解决此次申请 --- 最初一个函数后面的所有函数都须要增加第三个参数 next,调用 next 函数能力执行下一步
    将多个函数放在一个数组中,用数组解决申请
    数组 + 函数
    通过路由器对象解决
        创立:router = express.Router()
        app 用 use 让路由对象解决:app.use(门路,router)
        router 解决跟 app 解决语法统一 ----router.get();router.post()
        路由器模块化:利用 use 办法和路由器对象,将解决的具体代码放在其余文件中,不便分工合作
        留神:残缺门路 - use 门路 = router 门路

***4. 申请信息
    申请办法:req.method
    客户端 ip:req.ip
    申请头:req.headers
    申请门路:req.url

*** 响应办法
    res.end:没有响应头的内容
    res.send:带有响应头的内容
    res.json:数组或对象内容
    res.redirect:跳转到其余路由
    res.sendFile:读取页面并响应
        内置变量:__dirname:代表以后文件所在文件夹的绝对路径
    res.sendStatus:设置响应状态码

* 三、中间件

 概念:在最初一次响应之前,所经验的那些函数就叫中间件 ----- 中间件函数肯定有 next

1. 内置中间件
    动态资源托管:app.use(门路,express.static( 动态资源文件夹))
    全局内置中间件 ----- 获取 post 传递的数据
        app.use(express.uelencoded({extended:false}))---- 将 post 来的数据放在 req 上,req.body
     部分中间件 --- 将代码放到部分的参数中,只在以后作用域无效

2. 自定义中间件
    自定义获取 post 数据的中间件,中间件的 req 和最终执行函数中的 req 是同一个,所以能够在中间件给 req 增加属性,在最终路由的 req 就能获取到这个数据

3. 第三方中间件
    下载模块:npm i body-parser
    导入这个模块:const bodyParser = require('body-parser')
    应用这个中间件:app.use(bodyParser.urlencoded({extended:false}))

4. 异样解决中间件
    app.use((err,req,res,next) => {})----err 是报错信息
        必须放在所有路由上面 --- 当下面的路由报错了会在这里捕捉到谬误并执行

5.404 中间件
    app.use((req,res,next) => {})
        必须放最所有路由上面,当下面路由都没有匹配到门路时会执行





























正文完
 0