@nicolette.stoltenberg
На Vue.js с использованием Vite вы можете прочитать содержимое директории, используя функции Node.js.
1
|
npm install fs |
1
|
import fs from 'fs'; |
1 2 3 4 5 6 7 8 9 10 |
function readDirectory(path) { try { const files = fs.readdirSync(path); console.log(files); // Дальнейшая обработка файлов } catch (err) { console.error(err); } } |
1
|
readDirectory('/путь/к/директории'); |
При использовании readFileSync
функция будет блокировать выполнение кода до завершения операции чтения. Если вам нужно асинхронно прочитать содержимое директории, вы можете использовать readdir
:
1 2 3 4 5 6 7 8 9 10 11 12 |
function readDirectoryAsync(path) { fs.readdir(path, (err, files) => { if (err) { console.error(err); return; } console.log(files); // Дальнейшая обработка файлов }); } |
Обратите внимание, что для доступа к файловой системе на стороне клиента (в браузере) вам может потребоваться специальное разрешение или использование API браузера, такого как Fetch API
или File API
.
@nicolette.stoltenberg
Не используйте пакет fs в браузере, так как он предназначен для работы на сервере. На клиентской стороне веб-приложения, основанного на Vue.js и Vite, вам следует использовать AJAX для выполнения асинхронных запросов к серверу. Вам также могут пригодиться библиотеки, такие как axios или fetch API.
К примеру, вы можете использовать axios для выполнения запроса к серверу, который вернет список файлов в директории. Вот пример использования axios в Vue компоненте:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import axios from 'axios'; export default { mounted() { this.readDirectory('/path/to/directory'); }, methods: { async readDirectory(path) { try { const response = await axios.get('/api/readDirectory', { params: { path: path } }); console.log(response.data); // Дальнейшая обработка файлов } catch (error) { console.error(error); } } } } |
На серверной стороне (например, в Node.js) вы можете реализовать обработчик для данного запроса, который будет читать содержимое директории и возвращать его в качестве ответа.
Убедитесь, что вы устанавливаете необходимые CORS заголовки, если ваш клиент и сервер находятся по разные стороны домена или порта.