Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

608
Vistas
Node.js: ¿Cómo importar/requerir un archivo, ejecutar sus comandos y acceder a sus variables actualizadas como en Python?

En python, solo puede tener file1.py con una clase llamada "class1" como esta:

 class class1: def __init_(self, var1, var2): self.var3 = var1 self.var4 = var2 self.callFunction(self.var3, self.var4) def callFunction(self, classVar1, classVar2): print(classVar1) print(classVar2) def anotherFunction(self, otherVar1, otherVar2): daString = otherVar1 + otherVar2 return daString if __name__ == '__main__': class1('passing var1', 'passing var2')

Y podemos importarlo en file2.py con:

 from folder import file1 from folder.file1 import *

Y luego podemos llamar a la clase file1.py en file2.py y acceder literalmente a todo lo que contiene, incluidas las variables propias actualizadas como esta:

 newThing = file1.class1('updated self var1', 'updated self var2') # lets print our updated self vars from file1.py class print(newThing.var3) # "updated self var1" print(newThing.var4) # "updated self var2" # lets call a function from file1.py's class and print result result = newThing.anotherFunction('test', '123') print(result) # test123

Bastante simple. Ahora mi pregunta es: ¿cómo se puede hacer exactamente esto en node.js? Mi primer intento fallido fue este:

Archivo1.js:

 class Class1 { constructor(var1, var2) { this.cVar1 = var1; this.cVar2 = var2; this.extraThing = 'extra text'; someFunction(this.cVar1, this.cVar2); // wont work, it doesnt recognize someFunction() } someFunction(passArg1, passArg2) { console.log(passArg1 + passArg2 + this.extraThing); // this.extraThing seems to be undefined, same with just extraThing } } module.exports = new Class1();

Cargando File1.js en File2.js:

 const importClass = require('File1.js'); module.exports = async function(var1, var2) { let classThing = new importClass(var1, var2); // will load, but unable to call a fnction inside of it let var3 = 'something'; let var4 = 'else'; classThing.someFunction(var3, var4); // wont work, cant access someFunction (its undefined) }

Y mi segundo intento fallido fue abandonar la idea de Clase y simplemente hacer exports.Class1 = function (); en File1.js, que probablemente sería aún peor para lo que estoy tratando de hacer.

Soy nuevo en node.js, por lo que existe una gran posibilidad de que esté haciendo algo completamente estúpido y soy consciente de ello... pero he estado buscando en Internet durante mucho tiempo y parece que no puedo para encontrar lo que busco. ¿Es lo que estoy buscando (el equivalente a cómo se hace en python) incluso posible en node.js?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Para reescribir el código python que proporcionó a NodeJS, lo haría así:

folder/file1.js

 class Class1 { constructor(arg1, arg2) { this.var3 = arg1; this.var4 = arg2; this.callFunction() } callFunction() { console.log(this.var3) console.log(this.var4) } anotherFunction(otherArg1, otherArg2) { const daString = otherArg1 + otherArg2; return daString } } if (require.main === module) new Class1("passing var1", "passing var2") module.exports = Class1;

file2.js

 const file1_Class1 = require("./folder/file1.js"); const newThing = new file1_Class1("updated self var1", "updated self var2") console.log(newThing.var3); console.log(newThing.var4); const result = newThing.anotherFunction("test", "123"); console.log(result);

lo que dará exactamente el mismo resultado de registro que en Python:

1- ejecutando: $ node file2.js

 updated self var1 updated self var2 updated self var1 updated self var2 test123

2- ejecutando directamente: $ node folder/file1.js (como "principal" )

 updated self var1 updated self var2

Los valores actualizados de las propiedades de la clase se usan dentro de la Clase misma usando this . Es decir: this.var3 , this.callFunction() etc, tal como lo haría en Python usando self .

Desde una clase importada ( predeterminada ), crea una instancia usando la new palabra clave, y luego usa las variables y los métodos de función usando su nombre de instancia newThing.var3 , newThing.callFunction() , etc.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda