add express-async-handler

This commit is contained in:
juzeon 2021-07-31 11:04:10 +08:00
父節點 22dc49adcc
當前提交 e2e1f373c2
共有 4 個檔案被更改,包括 17 行新增13 行删除

查看文件

@ -24,6 +24,7 @@
"cors": "^2.8.5",
"dotenv": "^10.0.0",
"express": "^4.17.1",
"express-async-handler": "^1.1.4",
"express-jwt": "^6.0.0",
"express-validator": "^6.12.1",
"jsonwebtoken": "^8.5.1",

查看文件

@ -6,6 +6,7 @@ import {body, param, query} from "express-validator"
import {Container} from "typedi"
import {AdminService} from "../services/admin-service"
import {PostModel} from "../models/post-model"
import expressAsyncHandler from "express-async-handler"
let adminService = Container.get(AdminService)
let postModel = Container.get(PostModel)
@ -20,10 +21,10 @@ adminRouter.use((req: express.Request, res: express.Response, next) => {
adminRouter.get('/list/:status',
param('status').isIn([1, 2, 3]).withMessage('Post状态仅支援1,2,3'),
query('page').default(1).isInt({min: 1}).withMessage('页码必须>=1'),
async (req: express.Request, res: express.Response) => {
expressAsyncHandler(async (req: express.Request, res: express.Response) => {
if (hasValidationErrors(req, res)) return
res.json(await adminService.list(req.params.status as any as TPostStatus, req.query.page as any as number))
}
})
)
adminRouter.post('/setStatus',
body('id').isInt().bail().custom(async input => {
@ -33,10 +34,10 @@ adminRouter.post('/setStatus',
}
}),
body('status').isIn([1, 2, 3]).withMessage('Post状态仅支援1,2,3'),
async (req: express.Request, res: express.Response) => {
expressAsyncHandler(async (req: express.Request, res: express.Response) => {
if (hasValidationErrors(req, res)) return
res.json(await adminService.setStatus(req.body.id, req.body.status))
}
})
)
export {adminRouter}

查看文件

@ -6,6 +6,7 @@ import {body, oneOf, query} from "express-validator"
import * as Validator from "validator"
import {hasValidationErrors} from "../includes"
import {JWTUserPayload} from "../types"
import expressAsyncHandler from "express-async-handler"
let postService = Container.get(PostService)
@ -18,17 +19,17 @@ postRouter.post('/submit',
body('content').optional().notEmpty().withMessage('请输入内容')
.escape(),
body('image').optional().isURL({host_whitelist: [/.*\.360buyimg\.com/]}).withMessage('仅支援*.360buyimg.com下的图片'),
async (req: express.Request, res: express.Response) => {
expressAsyncHandler(async (req: express.Request, res: express.Response) => {
if (hasValidationErrors(req, res)) return
res.json(await postService.submit(req.user as JWTUserPayload, req.body.content, req.body.image))
}
})
)
postRouter.get('/listPublished',
query('page').default(1).isInt({min: 1}).withMessage('页码必须>=1'),
async (req: express.Request, res: express.Response) => {
expressAsyncHandler(async (req: express.Request, res: express.Response) => {
if (hasValidationErrors(req, res)) return
res.json(await postService.listPublished(req.query.page as any as number))
}
res.json(await postService.listPublished(Number(req.query.page)))
})
)
export {postRouter}

查看文件

@ -5,6 +5,7 @@ import {UserService} from "../services/user-service"
import {body, validationResult,} from "express-validator"
import {hasValidationErrors} from "../includes"
import {JWTUserPayload} from "../types"
import expressAsyncHandler from "express-async-handler"
let userService = Container.get(UserService)
@ -12,13 +13,13 @@ let userRouter = express.Router()
userRouter.post('/login',
body('username').notEmpty().withMessage('请输入使用者名称'),
body('password').notEmpty().withMessage('请输入密码'),
async (req: express.Request, res: express.Response) => {
expressAsyncHandler(async (req: express.Request, res: express.Response) => {
if (hasValidationErrors(req, res)) return
res.json(await userService.login(req.body.username, req.body.password))
}
})
)
userRouter.get('/me',async (req:express.Request,res:express.Response)=>{
userRouter.get('/me',expressAsyncHandler(async (req:express.Request,res:express.Response)=>{
res.json(await userService.me(req.user as JWTUserPayload))
})
}))
export {userRouter}