v2.5.2
Giriş yap

Middleware da tanımlanan değeri router.post('/blabla') fonksiyonun içinde kullanmak.

Anonim
233 defa görüntülendi ve 1 kişi tarafından değerlendirildi

    //auth.mid.ts
    
    import {verify} from "jsonwebtoken"
    import { HTTP_UNAUTHORIZED } from "../constant/http_status"
    import {Request, Response, NextFunction} from 'express'

    const authController =  (req: Request|any, res: Response, next: NextFunction) => {
    const token = req.headers.access_token as string
    if(!token) return res.status(HTTP_UNAUTHORIZED).send()

    verify(token,process.env.JWT_SECRET!,(response, err) => {
        if(err){
            return res.sendStatus(403)
        }
        req.user = response
        next()
    })
}

export default authController


//order.router.ts

import {Request, Response, Router} from "express"
import asyncHandler from 'express-async-handler'
import { HTTP_BAD_REQUEST } from "../constant/http_status"
import { OrderModel } from "../models/order.model"
import { OrderStatus } from "../constant/order_status"
import authController from '../middlewares/auth.mid'

const router = Router()
router.use(authController)

router.post('/create',asyncHandler(async(req:Request|any, res:Response) => {
    const requestOrder = req.body

    if(requestOrder.items.length <=0 ){
        res.status(HTTP_BAD_REQUEST).send('Sipariş boş.')
        return
    }

    await OrderModel.deleteOne({
      user: req.user.id,
        status: OrderStatus.NEW
    })

    const newOrder = new OrderModel({...requestOrder,user: req.user.id})
    await newOrder.save()
    res.send(newOrder)
}))

export default router

//Not: req.user.id bu değeri kullanmak istiyorum.

Cevap yaz
Cevaplar (0)
Henüz kimse cevap yazmadı. İlk cevap yazan sen ol!