Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Undefined e SyntaxError

import fs from 'fs';
import chalk from 'chalk';

function pegaArquivo (caminhoDoArquivo) {
    const encoding = 'utf-8';
    fs.readFile(caminhoDoArquivo, encoding, (_, texto) => {
        console.log(chalk.green(texto));
    })
}

pegaArquivo('./nodeJsCurso1/texto.md');

Acredito que esteja tudo certo com o código, porém ele me retorna Undefined. Algumas aulas atrás quando importamos CHALK do npm, a versão utilizada em aula nao é a mesma da minha, eu utilizei uma versão mais atual. Acredito que não seja esse o problema pois a resposta Undefined aparece na cor verde hahah. Agora, por algum motivo também me aparece um SyntaxError na arrow function caso eu deixe ela "sozinha" na linha. Ex.:

        fs.readFile(caminhoDoArquivo, encoding, (_, texto)
        => {

Dessa forma recebo um Syntax Error.

2 respostas
solução!

Olá pessoal! Acabei de assistir a aula de tratamento de erros e ao mexer no código, mais especificamente ao apagar o caminho do texto.md consegui receber a resposta esperada do texto na cor verde. Segue o código:

import fs from 'fs';
import chalk from 'chalk';

function trataErro(erro) {
    throw new Error(chalk.red(erro.code, 'arquivo não encontrado'));
}

function pegaArquivo (caminhoDoArquivo) {
    const encoding = 'utf-8';
    fs.readFile(caminhoDoArquivo, encoding, (erro, texto) => {
        if (erro) {
            trataErro(erro);
        }
        console.log(chalk.green(texto));
    })
}

pegaArquivo('./texto.md');

A única coisa é que minha arrow function continua me mostrando syntax error. ** function trataErro funcionando normalmente.

Boa que já conseguiu resolver apresentar o texto no terminal, cara! Sobre a arrow function que tá mostrando syntax error, pelo código que vc colocou o primeiro (igual ao da aula, sem o if), parece que vc deu uma quebra de linha antes da => e não pode ter quebra de linha entre a flecha e os parâmetros. Talvez seja isso.