У меня есть проблема, когда я пытаюсь req.file в методе post в моем классе, это значение, если я пытаюсь req.file.key, возвращает, но в моем коде это показывает ошибку
Property 'key' does not exist on type 'File'.
Я прочитал этот код, он работает, но я не понимаю эту ошибку
userRoutes
.route('/')
.post(
multer(multerConfig).single('file'),
async (req: Request, res: Response ): Promise<Response> => {
try{
let userNew = new User();
userNew.firstName = req.body.firstName;
userNew.lastName = req.body.lastName;
userNew.password = req.body.password;
userNew.fotoKey = req.file.key;
userNew.fotoUrl = req.file.location;
В userNew.fotoKey или fotoUrl верните эти данные, но req.file.key или req.file.locatio: покажите ошибку до
мой конфиг такой:
const storageTypes = {
local: multer.diskStorage({
destination: (req, file, cb )=>{
cb(null, path.resolve(__dirname, "..", "..", "tmp", "uploads"))
},
filename: (req, file, cb)=>{
crypto.randomBytes(16, (err, hash)=>{
if(err) cb(err,"erro")
const fileName = `${hash.toString('hex')}-${file.originalname}`;
cb(null,fileName)
})
}
}),
s3: multerS3({
s3: new aws.S3(),
bucket: 'biocateste',
contentType: multerS3.AUTO_CONTENT_TYPE,
acl:'public-read',
key: (req, file: IPhoto, cb) => {
crypto.randomBytes(16, (err, hash)=>{
if(err) cb(err,"erro")
const fileName = `${hash.toString('hex')}-${file.originalname}`;
cb(null,fileName)
})
},
}),
}
export default {
dest: path.resolve(__dirname, "..", "..", "tmp", "uploads"),
storage: storageTypes['s3'],
limits:{
fileSize: 2 * 1024 * 1024,
},
fileFilter:(req: any , file:any, cb:any)=>{
const allowedMimes = [
"image/jpeg",
"image/pjpeg",
"image/png",
"image/gif"
];
if(allowedMimes.includes(file.mimetype)) {
cb(null, true);
} else {
cb(new Error("Invalid file type."));
}
}
}
извините, о моем английском sh, и заправляю вас - я из другой страны