本文整理匯總了TypeScript中express.Request.check方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript Request.check方法的具體用法?TypeScript Request.check怎麽用?TypeScript Request.check使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類express.Request
的用法示例。
在下文中一共展示了Request.check方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: RouterError
const validateParams = (params: { entity: ISong, admin: IAdmin }, req: Request, log: Log) => {
if (!params.entity) {
log.error('params', params)
return ERRORS.PARAMS
}
req.check('entity.name')
.notEmpty()
.isLength({ max: 100 }).withMessage('存儲 name 不正確')
req.check('entity.name')
.notEmpty()
.isLength({ max: 100 }).withMessage('存儲 key 不正確')
req.check('entity.title').notEmpty().isLength({ max: 100 }).withMessage('歌曲名稱不正確')
req.check('entity.artist').notEmpty().isLength({ max: 100 }).withMessage('歌手名稱不正確')
req.check('entity.album').notEmpty().isLength({ max: 100 }).withMessage('專輯名稱不正確')
req.check('entity.size').notEmpty().isLength({ max: 100 }).withMessage('歌曲文件信息不正確')
req.check('entity.mimeType').notEmpty().isLength({ max: 100 }).withMessage('歌曲文件類型不正確')
req.check('entity.duration').notEmpty().isLength({ max: 100 }).withMessage('歌曲時長不正確')
req.check('entity.image._id').notEmpty().isLength({ max: 100 }).withMessage('歌曲封麵信息不正確')
const errors = req.validationErrors()
if (errors) {
log.error('params', { params, errors })
return new RouterError(2, errors[0].msg)
}
if (isNaN(+params.entity.duration)) {
log.error('params', params)
return new RouterError(3, '歌曲時長信息不正確')
}
if (isNaN(+params.entity.size)) {
log.error('params', params)
return new RouterError(4, '歌曲文件信息不正確')
}
return null
}
示例2: RouterError
const validateParams = (params: { entity: SimpleBlog, admin: IAdmin }, req: Request, log: Log) => {
if (!params.entity) {
log.error('params', params)
return ERRORS.PARAMS
}
req.check('entity.title')
.notEmpty().withMessage('文章標題必須填寫')
.isLength({ max: 120 }).withMessage('文章標題必須在 120 個字符內')
req.check('entity.context').notEmpty().withMessage('文章內容不允許為空')
req.check('entity.summary').notEmpty().withMessage('文章描述不能為空')
req.check('entity.category').notEmpty().withMessage('分類不能為空')
const errors = req.validationErrors()
if (errors) {
log.error('params', { params, errors })
return new RouterError(2, errors[0].msg)
}
if (!Array.isArray(params.entity.tags)) {
log.error('params', params)
return new RouterError(2, '標簽信息不正確')
}
return null
}
示例3: RouterError
const validateParams = (params: { entity: SimpleArticle, admin: IAdmin }, req: Request, log: Log) => {
if (!params.entity) {
log.error('params', params)
return ERRORS.PARAMS
}
req.check('entity.title')
.notEmpty().withMessage('文章標題必須填寫')
.isLength({ max: 120 }).withMessage('文章標題必須在 120 個字符內')
req.check('entity.context').notEmpty().withMessage('文章內容不允許為空')
req.check('entity.summary')
.notEmpty().withMessage('文章描述不能為空')
.isLength({ max: 200 }).withMessage('文章描述隻能在 200 字以內')
req.check('entity.songId').notEmpty().isLength({ max: 100 }).withMessage('歌曲信息不正確')
req.check('entity.posterId').notEmpty().isLength({ max: 100 }).withMessage('文章圖片不正確')
const errors = req.validationErrors()
if (errors) {
log.error('params', { params, errors })
return new RouterError(2, errors[0].msg)
}
return null
}
示例4: async
export const comment = async (req: Request, res: Response) => {
const params = Object.assign({}, req.query, req.body)
log.info('comment.call', params)
// 驗證 blog ID
const blogId = req.body.blogId
if (!blogId || !regMongodbId.test(blogId)) {
return res.json(ERRORS.BLOGNOTFOUND.toJSON())
}
// 校驗昵稱和 email
req.check('nickname')
.trim()
.notEmpty().withMessage('昵稱不能為空')
.isLength({ max: 30 }).withMessage('昵稱不允許超過 30 個字符')
req.check('email')
.trim()
.notEmpty().withMessage('email 不能為空')
.isEmail().withMessage('email 格式不正確')
.isLength({ max: 60 }).withMessage('email 不允許超過 60 個字符')
req.check('context')
.trim()
.notEmpty().withMessage('評論內容不能為空')
.isLength({ max: 140 }).withMessage('評論內容不允許超過 140 個字符')
const errors = req.validationErrors()
if (errors) {
log.error('comment.params', { params, errors })
// 不需要返回太詳細的信息,因為前端已經做過校驗
return res.json(ERRORS.COMMENTERROR.toJSON())
}
/**
* 站點
*/
let site = params.site
// 傳入了站點,則校驗站點
if (site && site.trim() && !checkUri(site)) {
return res.json(ERRORS.COMMENTERROR.toJSON())
} else {
// 修正站點信息
site = site ? resolveHTTPUri(site) : site
}
const nickname = params.nickname.trim()
const email = params.email.trim()
if (!checkEmail(email)) {
return res.json(ERRORS.COMMENTERROR.toJSON())
}
/**
* 用戶評論內容
*/
const context = params.context.trim()
/**
* 查找對應的 blog
*/
const blog = await queryBlogById(blogId)
if (!blog) {
return res.json(ERRORS.BLOGNOTFOUND.toJSON())
}
// 看看用戶信息是否有更新,如果有更新,則對整個用戶信息進行更新
const userInfo = await diffUserAndUpdate(res.locals.user, {
// 修正管理員數據
role: res.locals.admin ? UserRole.ADMIN : UserRole.NORMAL,
nickName: nickname,
email,
site,
})
// 有修改,則修正全局引用
if (userInfo.updated) {
res.locals.user = userInfo.user
}
/**
* hash
*/
// ===== 回複邏輯
if (params.commentId) {
let newReplyModel: IReply
if (!regMongodbId.test(params.commentId)) {
return res.json(ERRORS.COMMENTERROR.toJSON())
}
// 進入回複邏輯分支
const commentModel = await queryCommentById(params.commentId)
if (!commentModel) {
return res.json(ERRORS.COMMENTNOTFOUND.toJSON())
}
if (params.replyId) {
// ==== 回複類型 1:針對評論中回複的回複
if (!regMongodbId.test(params.replyId)) {
return res.json(ERRORS.COMMENTERROR.toJSON())
}
// 查找對應的回複對象
// const comment = await queryCommentByReplyId(commentModel._id, params.replyId)
let reply: IReply
// 可以直接遍曆上麵的 commentModel 對象...不用再查數據庫了
if (commentModel.replys.length) {
reply = commentModel.replys.find(reply => {
//.........這裏部分代碼省略.........