The "path" argument must be of type string. Received undefined – File upload with multer

I am trying to upload files with multer and I am receiving this error.

internal/validators.js:117

throw new ERR_INVALID_ARG_TYPE(name, ‘string’, value);

^

TypeError [ERR_INVALID_ARG_TYPE] [ERR_INVALID_ARG_TYPE]: The “path”
argument must be of type string. Received undefined

I am facing this problem when I try from both angular and postman.
My code:

import multer from 'multer';

export const upload = multer({

  storage: multer.diskStorage({
    destination: (req, file, cb) => cb(null, process.env.HOST_PORTAL_DIR),
    filename: (req, file, cb) => cb(null, helpers.generateFileId(file.mimetype)),
  }),

}).single('file');

router.post('/', function (req, res) {
  upload(req, res, function (err) {
    if (err instanceof multer.MulterError) {

      console.log('Multer error', err);
    } else if (err) {

      console.log('unknown error', err);
    }


  });
});

Source: New feed
Source Url The "path" argument must be of type string. Received undefined – File upload with multer