загрузка изображения с помощью multer , expreess , машинописного текста

#node.js #typescript #mongodb #express #multer

Вопрос:

я загружаю изображение с помощью multer , expresss и машинописного текста. в моем файле console.log response кажется , что сервер правильно получает изображение, однако изображение не сохраняется на моем сервере.

вот мой код: моя функция загрузки:

 
const storage = multer.diskStorage({
 destination: function (req , file , cb) {

     cb(null , 'uploads/')
 } , 
 filename: function (req: any, file: any, cb: any) {
   cb(null, file.originalname)
}
})
function checkFileType(file: any , cb: any)
{

 const filetypes= /jpg|jpeg|png/
 const extname= filetypes.test(path.extname(file.originalname).toLowerCase())
 const mimetype = filetypes.test(file.mimetype)

 if(extname amp;amp; mimetype) { 
     return cb(null, true)
 } else{ cb('images only')}
}
const upload = multer({
 storage,
 fileFilter: function(req,file,cb) { 
     checkFileType(file,cb)

 }
})


 

мой контроллер:

 
@controller('/products')
    class ProductsClass { 
      @post('/newProduct')
      @bodyValidator('name', 'price', 'desc' , 'pic')
      async PostProduct  (req: Request,res: Response) { 
        try {
     upload.single('pic')
         const product = await ProductModel.create(
        {   name: req.body.name,
           price: req.body.price,
           desc: req.body.desc ,
           catagory: req.body.catagory,
            pic: req.files

}
         )
          res.send(product)
        } catch  (error) {   
          res.json(error);

          
        }
      }


 

ответ:

 
{
    "dateOfEntry": "2021-07-06T14:05:38.263Z",
    "lastUpdated": "2021-07-06T14:05:38.263Z",
    "_id": "60e46335a87baf1bc430659c",
    "desc": "dasda",
    "pic": [
        {
            "fieldname": "pic",
            "originalname": "user-3.jpg",
            "encoding": "7bit",
            "mimetype": "image/jpeg",
            "buffer": {
                "type": "Buffer",
                "data": [
                    255,
                    216,
...
...
...

 

я предполагаю , что проблема в функции хранения, однако я не могу указать пальцем на нужное место.
заранее спасибо.