Estoy tratando de crear una función ficticia en nodejs y tratando de exportarla en otro archivo, pero cuando la ejecuto usando node index.js , podría haber algún tipo de error tonto, pero muestra un error que:
TypeError: spr.comb is not a functionA continuación se muestra mi código:
propagación.js
const comb = () => { const arr = [4,5,6]; const newArr = [1,2,3,...arr]; console.log(newArr); } module.exports = comb;índice.js
const spr = require('./spread'); spr.comb();Alguien hágame saber lo que estoy haciendo mal.
El problema es que ha sobrescrito por completo el objeto module.exports .
module.exports es un objeto vacío al que puede agregar los valores para exportar desde un módulo.
En su caso, ha reasignado la función module.exports to comb . Entonces, para llamar a la función, cambie
spr.comb();a
spr(); Para spr.comb() funcione, debe exportar la función comb como se muestra a continuación:
module.exports.comb = comb;o
exports.comb = { ... }puedes hacerlo así (en spread.js):
const comb = module.exports.comb = () => { const arr = [4, 5, 6]; const newArr = [1, 2, 3, ...arr]; console.log(newArr); }No puede usar un nombre definido por el usuario aquí porque ha exportado peine de su archivo de distribución
const spr = require('./spread'); spr.comb();Usa esto en su lugar
const comb = require('./spread');Si desea usar un nombre personalizado, debe modificar su archivo de distribución de esta manera
module.exports = () => { const arr = [4,5,6]; const newArr = [1,2,3,...arr]; console.log(newArr); }Ahora está exportando una función de la distribución, mientras la importa/incluye en index.js, puede proporcionar un nombre personalizado a esta función.
const {custom name comes here}= require('./spread');Por ejemplo
const comb = require('./spread'); const myCombFn = require('./spread');