当前位置: 首页 > news >正文

寒假学习记录16:Express框架(Node)

后续会补充

1.引入express

        1.先下载express框架

                创建一个package.json格式的文件,里面写入

{
    "dependencies": {
      "express": "~4.16.1" //express版本号
    }
}

                然后打开终端输入

npm i
        2.引入express模块
const express = require("express");
const app = express();

2.使用express

        监听端口号
const port = 5000;
app.listen(port,()=>{
    console.log(`server listen on ${port}`)
})
        处理请求
语法:app.请求方式("请求路径",(req,res)=>{})

                如果不写请求路径,则匹配所有路径 --> 同 " * "

                :路径参数名 --> 匹配动态路径参数,会自动匹配

                例:

app.get("/news/:id/:index",(req,res)=>{
    console.log("请求头",req.headers);
    console.log("请求路径",req.path);
    //会自动转换为对象
    console.log("query",req.query);    //问号后面的
    console.log("params",req.params); //问号前面的动态路径参数
});
        处理响应
语法:res.send(响应内容);

                例:

app.get("/news/:id/:index",(req,res)=>{
    res.send({      //send无需手写end()
        id:123,
        name:"aa"
    })  
    res.setHeader("a","123");//设置响应头
    res.redirect(302,"重定向路径")//设置重定向
});

3.Express中间件

        类似封装一个功能函数

        中间件的使用,可以不写请求路径(匹配所有情况)

app.use("请求路径",require("中间件"))
        1.处理错误的中间件小案例
//处理错误的中间键
module.exports = (err,req,res,next)=>{
    if (err) {  //如果发生了错误
        const errObj = {
            code: 500,
            msg: err instanceof Error ? err.message : err,
        };
        res.status(500),send(errObj);
    } else {
        next(); //如果没有错误发生就执行下一个函数
    }
}
        2.处理静态资源中间件

                express.static()

                        当请求时,会根据请求路径,从指定的目录中寻找是否存在该文件

                                如果存在:直接响应文件内容,而不再移交给后续的中间件

                                如果不存在:则直接移交给后续的中间件处理

                        默认情况下,如果映射的结果是一个目录,则会自动使用index.html文件

                                更改默认文件

app.use(express.static(..., {
    index: "abc.html"    //在这里配置就行
}))

                用例:

const path = require("path");
const staticRoot = path.resolve(__dirname,"../public");
app.use(express.static(staticRoot))
        3.处理数据中间件

                express.urlencoded()        (x-www-form-urlencoded)

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

                express.json()        (JSON)

app.use(express.json())

                两个一般一起使用

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

Express路由

        用法        (方便处理基路径)

                创建

const express = require("express");
const router = express.Router();

router.get("/",(req,res)=>{
    res.send("具体的处理");
})

module.exports = router;

                使用

app.use("基路径",require("路由路径"))

cookie

        cookie        (信息载体,类似于小船)

                浏览器发请求给服务器        

                服务器通过cookie给浏览器发验证信息

                浏览器发(请求+cookie[验证信息])给服务器

                (浏览器和服务器都存数据)(数据过多服务器会炸)

        session        (类似加密后的验证信息)

                浏览器发请求给服务器        

                服务器通过cookie给浏览器发session

                浏览器发(请求+cookie[session])给服务器

                (浏览器和服务器都存数据)(数据过多服务器会炸)

        token        (JSON Web Token  JWT)(类似身份凭证)

                浏览器发请求给服务器

                服务器通过cookie给浏览器发身份凭证

                浏览器发(请求+cookie[身份凭证])给服务器

                (浏览器存数据,服务器只存一个密钥就行)

        ——————————————————————————————

nodemon

        npm i -g nodemon                  安装

        nodemon 要使用的js文件       启动

        如果报错的话

                1.以管理员的身份打开powerShell

                2.输入set-ExecutionPolicy RemoteSigned 回车

                3.输入y 回车

相关文章:

  • 搜索专项---最短路模型
  • Linux--编译器-gcc/g++使用
  • 二叉树相关OJ题
  • STM32自学☞定时器定时中断案例
  • Python爬虫下载小说
  • 人际交往中的勇气挑战与价值实现
  • 高效的工作学习方法
  • Vue2源码梳理:render函数的实现
  • iTop-4412 裸机程序(二十二)- RTC时钟
  • c++恶魔轮盘制造第1期输赢
  • 第62讲商品搜索动态实现以及性能优化
  • CTFshow web(php命令执行 55-59)
  • 容器高级知识: 适配器模式与 Sidecar 模式的区别
  • Python 读取pdf文件
  • 如何流畅进入Github
  • Spring + Tomcat项目中nacos配置中文乱码问题解决
  • HarmonyOS 鸿蒙 ArkTS ArkUI 页面之间切换转换动画设置
  • 微服务OAuth 2.1认证授权可行性方案(Spring Security 6)
  • [嵌入式系统-14]:常见实时嵌入式操作系统比较:RT-Thread、uC/OS-II和FreeRTOS、Linux
  • uniapp的配置和使用
  • 国台办:民进党当局所谓“对等尊严”,就是企图改变两岸同属一中
  • 中国证券监督管理委员会党委委员、副主席王建军接受审查调查
  • 大型长读长RNA测序数据集发布,有助制定精准诊疗策略
  • “人工智能是年轻的事业,也是年轻人的事业”,沪上高校师生畅谈感想
  • 中国防疫队深入缅甸安置点开展灾后卫生防疫工作
  • 打造沪派水乡的“湿意”,上海正在保护营造一批湿地空间