express基本使用

基本使用和各种中间件、session、跨域问题

import express from 'express'
import querystring from 'querystring'
import session from 'express-session'
import cors from 'cors'
const app = express()
const qwe = (req,res,next)=>{
    console.log('qwe自定义中间件')
    next()
}
//跨域问题
const server = app.createServer((req,res)=>{
    //设置cors相关的请求头
    res.setHeader('Access-Control-Allow-Origin','*')
    res.setHeader('Access-Control-Allow-Methods','GET,POST')
    res.setHeader('Access-Control-Allow-Header','Content-Type')
})
//使用cors中间件解决跨域问题
app.use(cors({
    origin:'*',
    methods:['GET','POST'],
    allowedHeaders:['Content-Type']
}))
const direct = (req,res,next)=>{
    console.log('测试指定挂载')
    next()
}
//挂载自定义中间件,除错误中间件,其他中间件均要在使用前挂载
app.use(qwe)
//挂载内置中间件来解析客户端发送的数据
// app.use(express.urlencoded({extended:false}))+
// app.use(express.json())

//手写解析url内容的中间件
app.use(function (req,res,next){
    let str = ''
    req.on('data',(dt)=>{
        str += dt
    })
    req.on('end',()=>{
        req.body = querystring.parse(str)
        next()
    })
})
app.use(
    session({
        secret:'second',
        resave:false,
        saveUninitialized:true
    })
)
app.post('/login',(req,res)=>{
    if(req.body.username !='admin' || req.body.password !='123'){
        return res.send({
            status:1,
            msg:'账号或密码错误'
        })
    }
    req.session.user = req.body
    req.session.isLogin = true
    res.send({
        status:0,
        msg:'登录成功',
        data:req.session
    })
})
app.get('/home',(req,res)=>{
    res.send('get成功')
    console.log('请求成功.')
})
app.post('/user',(req,res)=>{
    res.send(req.body)
    console.log('请求成功')
})
app.get('/direct',direct,(req,res)=>{
    res.send('中间件指定挂载请求')
})
//测试错误中间件
app.get('error',(req,res)=>{
    throw new error('速速重启')
    res.send('发不出去的消息')
})
//挂载错误中间件
app.use((error,req,res,next)=>{
    console.log('存在错误'+error.message)
    res.send('网络错误。。。'+error.message)

})
//启动服务器监听
app.listen(80,(req,res)=>{
    console.log('01服务器在80端口启动')
})
posted @ 2025-07-03 22:14  我就起个名字不至于吧  阅读(4)  评论(0)    收藏  举报