express 基本用法

 

 启动一个http服务.

import express from 'express';

const app = express() //express 是个函数

app.listen(3000, () => {
  console.log("服务器启动成功,3000");
});

 

 

get 和post接口

//get
//api地址,回调函数req是请求,res是响应
app.get("/get", (req, res) => {
  console.log(req.query);
    res.send("get");
});

app.post("/post", (req, res) => {
//   req.body
    console.log(req.body); //需要引入插件才能获得
    res.send("post");
});

app.get("/get/:id", (req, res) => {
  //req.params
    res.send(req.params.id);
});

接受前端的参数

get 用req.query

get 动态参数 用req.params

 

post 

如果前端使用的是post并且传递json 需要注册此中间件 不然是undefined

app.use(express.json()); //解析json格式

 

模块化

 

src/user.js

import express from 'express'

const router = express.Router()


router.post('/login', (req, res) => {
    res.json({message: 'Login',code: 200})
})

router.post('/register',()=>{
    res.json({message: 'Register',code: 200})
})

export default router

 

 src/list
import express from "express";

const router = express.Router();

router.get("/getAll", (req, res) => {
  res.json({ message: "获取成功", code: 200, data: [{ id: 1 }] });
});


export default router;

 

最后在app.js导入使用

import express from "express";

import User from "./src/user.js"
import List from "./src/list.js"
const app = express();

app.use(express.json()); //解析json格式
app.use('/user',User)
app.use('/list',List)


。。。。

注意

使用接口的适合 需要再加一层  比如 

app.use('/user',User)
那么接口就是 /user/api

 

中间件

中间件是一个关键概念。中间件是处理HTTP请求和响应的函数,它位于请求和最终路由处理函数之间,可以对请求和响应进行修改、执行额外的逻辑或者执行其他任务。

中间件函数接收三个参数:req(请求对象)、res(响应对象)和next(下一个中间件函数)。通过调用next()方法,中间件可以将控制权传递给下一个中间件函数。如果中间件不调用next()方法,请求将被中止,不会继续传递给下一个中间件或路由处理函数

 

实现一个日志中间件

npm install log4js

log4js是一个用于Node.js应用程序的流行的日志记录库,它提供了灵活且可配置的日志记录功能。log4js允许你在应用程序中记录不同级别的日志消息,并可以将日志消息输出到多个目标,如控制台、文件、数据库等

 
 \middleware\logger.js
import log4js from 'log4js'
//控制台输出 文件也要输出
log4js.configure({
    appenders: {
        out:{
            type: 'stdout',
            layout: {
                type: 'colored',
            }
        },
        file:{
            filename:'logs/server.log',
            type:'file',
        }
    },
    categories: {
        default: {
            appenders: ['out','file'],
            level: 'debug'
        }
    }
})

//req 接收前端数据
//res 返回给前端数据
//next 执行下一个中间件, 没有的话就卡住

const logger = log4js.getLogger('default')

const LOggerMiddleware = (req, res, next) => {
    
    logger.debug(`[${ req.method }] ${req.url}`)
    next()
}

export default LOggerMiddleware;

 


posted @ 2025-03-18 17:58  蜗牛般庄  阅读(29)  评论(0)    收藏  举报
Title
页脚 HTML 代码