express基础

143 阅读1分钟

获取 express 的全局应用

const express = require("express");
const app = express();

原生中是需要监听请求事件的(server.on("request",(req,res)=>{})), express 已经封装好了,现在只需要调用 app 的监听请求方法或者请求路径

监听 get 请求

// 将传入的方法promise化
const { promisify } = require("util");
const readFile = promisify(fs.readFile);
// req,res 这些是经过扩展的
app.get('/',(req,res) => {
        try {
        const data = await readFile("./data/db.json", "utf8");
        let back = JSON.parse(data);
        // 以前是res.end,现在换成express提供的send:数据转义并且响应返回
        res.send(back.users);
    } catch (error) {
        //设置状态码
        res.status(500).json({ error });
    }
})

监听 post 请求

//可以获取到客户端发送的xxx-form...对应的类型的数据
app.use(express.urlencoded())
//可以获取到客户端发送的json对应的类型的数据
app.use(express.json())
    //判断客户端发送数据的格式
    console.log(req.headers);
    //获取数据
    console.log(req.body);
    ...进行一系列的数据操作
     res.status(200).send({ msg: "添加成功" });
     res.status(500).json({ msg: "添加失败", error });

监听 put 请求

//:id占位符
app.put("/:id",(req,res) => {
    console.log(req.params.id);
    console.log(req.body);
})

app.all 不管什么请求,只要路径对了就行

app.all('/xxx',() => {})

路径可用正则

//?前可以省略
app.all('/us?er')

//+q 前的字母可以写多个
app.all('/us+er')

// * 通配符
app.all('/us*er')

因为 express 是针对于 http 模块做的扩展因此还手动监听

app.listen(8080, () => {
    console.log("Run http://127.0.0.1:8080");
});