Advertisement
noctual

Untitled

Aug 16th, 2021
292
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // *** UPLOAD ***
  2. router.post(
  3.     '/upload',
  4.     auth.ifAuthThenNext,
  5.     asyncMiddleware(async (req, res) => {
  6.         const { relative_path } = req.query
  7.  
  8.         // *** VALIDATIONS ***
  9.         // validate query
  10.         const validationQueryResult = await validation.files.upload.query.validate(req.query)
  11.  
  12.         // error
  13.         if (validationQueryResult.error) {
  14.             return res.status(httpStatus.BAD_REQUEST).json({
  15.                 success: false,
  16.                 message: 'Некорректный формат входных параметров',
  17.             })
  18.         }
  19.  
  20.         // *** UPLOAD FILES ***
  21.         const uploadPath = path.join(sourceFilesDirectory, relative_path)
  22.  
  23.         setDirectoryWatherFreeze(true)
  24.  
  25.         // it's works synchronously
  26.         createDirectoryIfNotExists(uploadPath)
  27.  
  28.         console.log(relative_path)
  29.         console.log(uploadPath)
  30.  
  31.         const form = formidable({
  32.             multiples: true,
  33.             uploadDir: uploadPath,
  34.             keepExtensions: true,
  35.             maxFileSize: process.env.UPLOAD_MAX_SIZE,
  36.             maxFields: process.env.UPLOAD_MAX_NUM,
  37.         })
  38.  
  39.         // handle file with exact image extensions
  40.         form.onPart = (part) => {
  41.             if (['image/png', 'image/jpg', 'image/jpeg'].includes(part.mime)) {
  42.                 form.handlePart(part)
  43.             }
  44.         }
  45.  
  46.         const parseFormResult = await parseForm(form, req)
  47.  
  48.         console.log(parseFormResult)
  49.  
  50.         onDirectoryChange(false, req.user.id)
  51.         setDirectoryWatherFreeze(false)
  52.  
  53.         if (parseFormResult === null) {
  54.             return res.status(httpStatus.BAD_REQUEST).json({
  55.                 success: false,
  56.                 data: {},
  57.                 message: 'Ошибка при загрузке файлов, свяжитесь с администратором',
  58.             })
  59.         }
  60.  
  61.         return res.status(httpStatus.OK).json({ success: true, data: parseFormResult })
  62.     }),
  63. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement