• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
    • Questions
    • Teachers
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

247
Views
error al usar el paquete ESM de "enlace automático" en el proyecto node.js

Tengo un proyecto Node.js.

Quiero usar el paquete auto-bind @v5.0.0.

Las versiones anteriores a la v4, son de tipo ESM. entonces no se puede usar por require('') . pero mi proyecto Node.js se basa en módulos Commonjs. Así que no puedo usar la forma de import .

mi problema: utilicé la siguiente forma de usar este paquete:

 const autoBind = (...args) => import('auto-bind').then(({default: autoBind}) => autoBind(...args));

pero el módulo de controller.js no envía este método de vinculación al módulo homeController.js .

quiero poner, auto-bind en el módulo controller.js , luego usarlo en el módulo homeController.js , por lo que, como resultado, puedo enviar un método de message al constructor de homeController :

el módulo homeController.js :

 const controller = require('app/http/controllers/controller.js'); module.exports = new class homeController extends controller{ index(req,res){ res.send(this.message()); } message(){ return('<p> home!</p>'); } }

el módulo controller.js :

 const autoBind = (...args) => import('auto-bind').then(({default: autoBind}) => autoBind(...args)); module.exports = class controller { constructor(){ autoBind(this); } }

cuando llamo a su dirección en el navegador, devuelve este error:

 TypeError: Cannot read properties of undefined (reading 'message')

nota: esto funciona con auto-bind@v1.2.0 sin ningún problema. pero su problema es por el tipo de ESM del módulo auto-bind . ¿Cómo puedo arreglar esto?

almost 3 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error