當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript Request.check方法代碼示例

本文整理匯總了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
}
開發者ID:linkFly6,項目名稱:Said,代碼行數:34,代碼來源:song-controller.ts

示例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
}
開發者ID:linkFly6,項目名稱:Said,代碼行數:23,代碼來源:blog-controller.ts

示例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
}
開發者ID:linkFly6,項目名稱:Said,代碼行數:23,代碼來源:article-controller.ts

示例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 => {
//.........這裏部分代碼省略.........
開發者ID:linkFly6,項目名稱:Said,代碼行數:101,代碼來源:blog.ts


注:本文中的express.Request.check方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。