Как сделать чтобы директории и файлы показывались в браузере

У меня есть код, он показывает папки, я могу переходить по ним и файлам, но это работает только в консоли

const fs = require('fs/promises');
const fsToRead = require('fs')
const path = require('path');
const inquirer = require('inquirer');
const yargs = require('yargs');
const {
  lstatSync,
  readdirSync
} = require('fs');
const http = require('http');
const url = require('url');
const options = yargs
  .options('p', {
    describe: 'Pattern',
    default: ''
  })
  .options('d', {
    describe: 'Path to directory',
    default: process.cwd()
  }).argv;

console.log(options);

class itemsList {
  constructor(path, fileName) {
    this.path = path;
    this.fileName = fileName;
  }
  get folders() {
    return lstatSync(this.path).isDirectory();
  }
}

let executionDir = process.cwd();

const start = async() => {
  const list = await fs.readdir(executionDir);
  const items = list.map(fileName =>
    new itemsList(path.join(executionDir, fileName), fileName));
  const item = await inquirer.prompt([{
    name: 'fileName',
    type: 'list',
    message: `Choose: ${executionDir}`,
    choices: items.map(item => ({
      name: item.fileName,
      value: item
    })),
  }]).then(answer => answer.fileName);

  if (item.folders) {
    executionDir = item.path;
    return await start();
  } else {
    const data = await fs.readFile(item.path, 'utf-8');

    if (!options.p) {
      console.log(data)
    } else {
      const regExp = new RegExp(options.p, 'igm');
      console.log(data.match(regExp));
    }
  }
}

start();


Ответы (1 шт):

Автор решения: Aleksandr Belous

Никак. Во-первых, у браузера нету доступа к локальным файлам. Во-вторых, у него нету встроенных функций для чтения файлов, как в nodejs.

const fs = require('fs/promises');
const fsToRead = require('fs')
const path = require('path');

А когда вы дебажили код в консоли, то именно интерпретатор node использовался. В браузере вы можете только файлы с запросов обрабатывать и те, что пользователь засунет в input

→ Ссылка