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

Problema ao importar

Oi pessoal Estou com problemas para importar o módulo.Aparece a mensagem abaixo quando jogo para o powershell

PS C:\Users\Suzana\desktop> node .\index.js (node:14696) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension. (Use node --trace-warnings ... to show where the warning was created) C:\Users\Suzana\desktop\index.js:1 import {Cliente} from "./Cliente.js" ^^^^^^

SyntaxError: Cannot use import statement outside a module at Object.compileFunction (node:vm:355:18) at wrapSafe (node:internal/modules/cjs/loader:1039:15) at Module.compile (node:internal/modules/cjs/loader:1073:27) at Object.Module.extensions..js (node:internal/modules/cjs/loader:1138:10) at Module.load (node:internal/modules/cjs/loader:989:32) at Function.Module.load (node:internal/modules/cjs/loader:829:14) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/runmain:76:12) at node:internal/main/run_main_module:17:47

Index


const cliente1 =  new Cliente();
cliente1.nome = "Ricardo";
cliente1.cpf = 1231230006;

cliente2 = new Cliente();
cliente2.nome = "Alice"
cliente2.cpf = 1231230005;

const contaCorrenteRicardo = new contaCorrente();
contaCorrenteRicardo.agencia = 1001;

contaCorrenteRicardo.depositar (-100);
contaCorrenteRicardo.depositar (100);
contaCorrenteRicardo.depositar (100);

const valorSacado = contaCorrenteRicardo.sacar(50);
console.log(valorSacado);

console.log(contaCorrenteRicardo);

Json

{
  "name": "bytebank",
  "version": "1.0.0",
  "description": "Projeto do bytebank para seus clientes",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Rodrigo",
  "license": "ISC",
  "type": "module"
}

Cliente

export class Cliente{
    nome;
    cpf;
 }

Conta Corrente

export class contaCorrente{
    agencia;
    _saldo = 0;

    sacar(valor){
       if(this._saldo >= valor){
          this._saldo -=valor; 
          return valor;
    }
  }
    depositar(valor){
       if(valor <= 0){
          return;
       }
       this._saldo += valor;
    }
 }
3 respostas

Siga abaixo o que a Giovanna disse que provavelmente resolverá seu problema :D

solução!

Oi Suzana, tudo bem?

Rodei aqui o seu código e não me apareceu esse erro de import. Você salvou o arquivo package.json corretamente? Verifique se o arquivo está salvo, pois no erro ele diz que é necessário colocar o "type": "module" nesse arquivo JSON, mas você já fez isso de forma correta.

De qualquer maneira, agora você precisa importar a classe Cliente e a classe contaCorrente dentro do arquivo index.js, e nós importamos dessa forma:

import { Cliente } from './Cliente.js';
import { contaCorrente } from './contaCorrente.js';

Depois de importado, você deve conseguir utilizar as classes corretamente.

Mais uma observação, quando você declara a variável cliente2 você esqueceu de usar a palavrinha const, o correto deveria ser:

const cliente2 = new Cliente();

Caso ainda não funcione, delete o arquivo package.json e rode o comando npm init -y no powershell, após feito isso outro arquivo package.json será criado, e então você adiciona o "type": "module" no final novamente.

Espero ter ajudado, qualquer outra dúvida me retorne aqui! Abraços e bons estudos!

Gente, obrigada pela ajuda. Exclui, criei um novo json e funcionou. Engraçado que eu fiz o mesmo procedimento de ontem e hoje funcionou *-emoticon de palhaço hahaha- *