Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

'Não há arquivo no caminho'

Olá, estou tentando executar o código mas o arquivo texto1.md não esta sendo encontrado

Módulo: extraiLinks

function extraiLink(texto) {
  const regex = /\[([^\]]*)\]\((https?:\/\/[^$#\s].[^\s]*)\)/gm
  const arrayResultados = []
  let temp
  while ((temp = regex.exec(texto)) !== null) {
    arrayResultados.push({ [temp[1]]: temp[2] })
  }
  return arrayResultados.length === 0 ? 'não há links' : arrayResultados
}

module.exports = extraiLink

Módulo: trataErro

function trataErro(err) {
  throw new Error(err.code, 'Não há arquivo no caminho')
}

module.exports = trataErro

Módulo: pegaArquivo

const fs = require('fs')
const path = require('path')
const extraiLink = require('./extraiLink')
const trataErro = require('./trataErro.js')

async function pegaArquivo(caminho) {
  const caminhoAbsoluto = path.join(__dirname, '..', caminho)
  const encoding = 'utf-8'
  try {
    const arquivos = await fs.promises.readdir(caminhoAbsoluto, { encoding })
    const resultado = await Promise.all(
      arquivos.map(async arquivo => {
        const localArquivo = `${caminhoAbsoluto}/${arquivo}`
        const texto = await fs.promises.readFile(localArquivo, encoding)
        return extraiLink(texto)
      })
    )
    return resultado
  } catch (erro) {
    return trataErro(erro)
  }
}

module.exports = pegaArquivo

cli

const pegaArquivo = require('./Aula1v2')

const caminho = process.argv
async function processaTexto(caminhoArquivo) {
  const resultado = await pegaArquivo(caminhoArquivo[2])
  console.log('Lista de links', resultado)
}
processaTexto(caminho)

Estou usando como comando: node cliv2.js ./Aula2Bibliotecas/ e o erro é:

throw new Error(err.code, 'Não há arquivo no caminho') ^ Error: EISDIR at trataErro (C:\NLW\Alura\Aula2_Bibliotecas\trataErro.js:2:9) at pegaArquivo (C:\NLW\Alura\Aula2_Bibliotecas\Aula1v2.js:24:12) at async processaTexto (C:\NLW\Alura\Aula2_Bibliotecas\cliv2.js:5:21)

1 resposta
solução!

Olá, tbm passei por esse problema, no meu caso o erro aconteceu pq havia uma pasta dentro do diretório que o script ia percorrer. Nesse caso ele vai tentar ler a pasta e vai dar erro. E vai dar erro mesmo se houver arquivos dentro que ele poderia fazer a leitura.

Verifica se tem alguma pasta dentro de ./Aula2Bibliotecas/. Se houver remove e testa novamente.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software