Чтобы передать наименование файла в NestJS (Node.js фреймворк для создания масштабируемых веб-приложений), вам нужно использовать модуль multer
, который является middleware для обработки мультимедийных данных, включая файлы.
Давайте разберем, как правильно передать наименование файла в NestJS с использованием multer
.
1. Установите multer
с помощью npm или yarn:
npm install --save @nestjs/platform-express multer
2. Импортируйте multer
и другие необходимые модули в вашем файле контроллера:
import { Controller, Post, UploadedFile, UseInterceptors } from '@nestjs/common'; import { FileInterceptor } from '@nestjs/platform-express'; @Controller('files') export class FilesController { @Post('upload') @UseInterceptors(FileInterceptor('file')) // указываем поле, в котором находится файл async uploadFile(@UploadedFile() file) { console.log(file.originalname); // получаем наименование файла return { filename: file.originalname }; } }
3. Создайте необходимый роутер и привяжите его к вашему контроллеру. Обратите внимание, что в примере выше мы использовали роутер /upload
, который ожидает файл, передаваемый в поле с именем file
. При загрузке файла эта информация будет доступна в методе uploadFile
.
4. В вашем клиентском приложении (например, React Native), вы можете отправить файл на сервер, используя fetch или другой способ передачи данных. Пример вызова API с использованием fetch:
const formData = new FormData(); formData.append('file', { uri: 'file://path/to/your/file.jpg', type: 'image/jpeg', name: 'my-file' }); fetch('http://your-server/files/upload', { method: 'POST', body: formData }) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error(error));
Это пример того, как правильно передать наименование файла в NestJS из вашего клиентского приложения на React Native. Не забудьте настроить правильные пути и обработку ошибок в вашем коде.