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

ERR_MDULE_NOT_FOUND persistente

Apareceu este erro e não consigo identificar o erro onde está.

node:internal/errors:477 ErrorCaptureStackTrace(err); ^

Error [ERR_MODULE_NOT_FOUND]: Cannot find module 'C:\Users\Fábio\Desktop\js-heranca-projetoinicial\Funcionario\Gerente.js.js' imported from C:\Users\Fábio\Desktop\js-heranca-projetoinicial\index.js at new NodeError (node:internal/errors:387:5) at finalizeResolution (node:internal/modules/esm/resolve:404:11) at moduleResolve (node:internal/modules/esm/resolve:965:10) at defaultResolve (node:internal/modules/esm/resolve:1173:11) at nextResolve (node:internal/modules/esm/loader:173:28) at ESMLoader.resolve (node:internal/modules/esm/loader:852:30) at ESMLoader.getModuleJob (node:internal/modules/esm/loader:439:18) at ModuleWrap. (node:internal/modules/esm/module_job:76:40) at link (node:internal/modules/esm/module_job:75:36) { code: 'ERR_MODULE_NOT_FOUND' }

Podem me ajudar?

Diretor.js está assim: import {Funcionario} from ".Funcionario/funcionario.js";

export class Diretor extends Funcionario{ constructor(nome, salario, cpf){ super(nome,salario,cpf) this._bonificacao = 1; } }

    Funcionario.js está assim:

    ``
    `export class funcionario{
    constructor(nome, salario, cpf){
        this._nome = nome;
        this._salario = salario;
        this._cpf = cpf;

        this._bonificacao = 1;
        this._senha;
    }
        autenticar(senha){
        return senha == this._senha;
        }
    cadastrarSenha(senha){
        this._senha = senha;
    }
}    
    ``

    Gerente.js está assim:

    ``
        import {Funcionario} from ".Funcionario/funcionario.js";

export class Gerente extends Funcionario{
    constructor(nome, salario, cpf){
    super(nome,salario,cpf)  
    this.bonificacao = 2;    
    }      
}
    ``
        SistemaAutenticacao.js está assim:

export class SistemaAutenticacao{ static login(autenticavel,senha){ if(SistemaAutenticacao.ehAutenticavel(autenticavel)){ return autenticavel.autenticar(senha); } return false; } static ehAutenticavel(autenticavel){ return "autenticar" in autenticavel && autenticavel.autenticar instanceof Function } } ` cliente.js está assim:

``
export class Cliente{
get cpf(){
    return this._cpf;
}

constructor(nome, cpf){
    this.nome = nome;
    this._cpf = cpf;
    this._senha = senha;
}
autenticar(){
    return true
}

} index.js está assim:

``
import {Cliente} from "./Cliente.js";

import { Gerente} from "./Funcionario/Gerente.js.js"; import { Diretor } from "./Funcionario/Diretor.js"; import { SistemaAutenticacao } from "./Funcionario/SistemaAutenticacao.js";

const diretor = new Diretor("Rodrigo", 10000, 22233344455); diretor.cadastrarSenha("123456789"); const gerente = new Gerente("Maria",5000, 33344455566); gerente.cadastrarSenha("12345"); const cliente = new Cliente("Lais", 45678900112, "123");

const diretorEstalogado = SistemaAutenticacao.login(diretor, "123456789");

const gerenteEstalogado = SistemaAutenticacao.login(gerente, "12345"); const clienteEstalogado = SistemaAutenticacao.login(cliente, "123"); console.log (gerenteEstalogado,diretorEstalogado,clienteEstalogado);

``

E o Conta.js está assim:
``

export class Conta{ constructor(saldoInicial,cliente,agencia){ if(this.constructor==Conta){ throw new Error("Você não deveria instanciar um objeto do tipo conta diretamente") }

    this._saldo  = saldoInicial;
    this._cliente = cliente;
    this._agencia = agencia;
 }

 set cliente(novoValor) {
    if(novoValor instanceof Cliente) {
        this._cliente = novoValor
    }
 }

 get cliente() {
    return this._cliente;
 }

 get saldo() {
    return this._saldo;
 }

 sacar(valor) {
    throw new Error("O método sacar é abstrato")

 }
_sacar(valor,taxa){
    const valorSacado = taxa * valor;
    if(this._saldo >= valorSacado){
        this._saldo -= valorSacado;
        return valorSacado;
    }
    return 0;
}

 depositar(valor){
    this._saldo += valor;   
}               
 tranferir(valor, Conta){
     const valorSacado = this.sacar(valor);
     Conta.depositar(valorSacado);    
    }
}

``

Obrigado!
1 resposta
solução!

Olá Ricardo! Seu bug está aqui (pelo que entendi, é no index.js):

import { Gerente} from "./Funcionario/Gerente.js.js";
import { Diretor } from "./Funcionario/Diretor.js"; 
import { SistemaAutenticacao } from "./Funcionario/SistemaAutenticacao.js";

É só apagar o .js duplicado ali no import de "Gerente" que deverá funcionar. Se tiver algum erro subsequente, só postar aqui que tento ajudá-lo.

Abs