Dima Akulichev
Ученик
(95),
на голосовании
11 месяцев назад
Доброго времени суток! Мне нужно типизировать функцию создания product. Функция находится в сервисе, но это не важно. Мне нужно типизировать массив файлов(Картинок для product). Вроде бы проблему можно решить с помощью File[], однако в таком случае отсутствует функция mv, а она необходима для сохранения файла в папку static. Вот код: async create( infoForCreatingProduct: InfoForCreatingProduct, images: File[], ): Promise<Model<any, any>> { const productImages: Model<any, any>[] = await Promise.all( images.map (img => { let fileName: string = v4() + '.jpg'; img.mv (path.resolve(__dirname, '..', 'static', fileName)); return ProductImage.create({ productId: product.id , url: fileName, }); }), );
if (infoForCreatingProduct.info) { const info = JSON.parse(infoForCreatingProduct.info); info.forEach(infoItem => ProductInfo.create({ title: infoItem.title, description: infoItem.description, deviceId: product.id , }), ); }
Кому интересно: сервер на Express, для взаимодействия с бд использую Sequelize. Код написан 13-ти летним школьником для научной работы, так-что если можете помочь оптимизировать функцию - буду рад:)
Мне нужно типизировать функцию создания product.
Функция находится в сервисе, но это не важно.
Мне нужно типизировать массив файлов(Картинок для product).
Вроде бы проблему можно решить с помощью File[], однако в таком случае отсутствует функция mv, а она необходима для сохранения файла в папку static.
Вот код:
async create(
infoForCreatingProduct: InfoForCreatingProduct,
images: File[],
): Promise<Model<any, any>> {
const productImages: Model<any, any>[] = await Promise.all(
images.map (img => {
let fileName: string = v4() + '.jpg';
img.mv (path.resolve(__dirname, '..', 'static', fileName));
return ProductImage.create({
productId: product.id ,
url: fileName,
});
}),
);
if (infoForCreatingProduct.info) {
const info = JSON.parse(infoForCreatingProduct.info);
info.forEach(infoItem =>
ProductInfo.create({
title: infoItem.title,
description: infoItem.description,
deviceId: product.id ,
}),
);
}
const product: any = await Product.create({
price: infoForCreatingProduct.price,
brandId: infoForCreatingProduct.brandId,
typeId: infoForCreatingProduct.typeId,
name: infoForCreatingProduct.name ,
});
return product;
}
Кому интересно: сервер на Express, для взаимодействия с бд использую Sequelize.
Код написан 13-ти летним школьником для научной работы, так-что если можете помочь оптимизировать функцию - буду рад:)