not nodejs node javascript node.js require

javascript - not - nodejs require



NodeJs: TypeError: require(...) no es una funciĆ³n (5)

Estoy tratando de requerir un archivo y luego pasarlo a una var. Estoy siguiendo this tutorial para crear un sistema de autenticación. Después de escribir el archivo server.js e intentar compilar, recibí un error bson, por lo tanto, cambié la línea que requería la versión de lanzamiento en mangosta.

Aquí están mi código y error:

server.js

require(''./app/routes'')(app, passport);

Error

require(''./app/routes'')(app, passport); ^ TypeError: require(...) is not a function at Object.<anonymous> (d:/Node JS learning/WorkWarV2/server.js:38:24) at Module._compile (module.js:434:26) at Object.Module._extensions..js (module.js:452:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Function.Module.runMain (module.js:475:10) at startup (node.js:117:18) at node.js:951:3 Process finished with exit code 1

He leído que esto generalmente significa que requireJS no se carga correctamente, pero no sé por qué ni cómo solucionarlo.

Editar debido al comentario:

Según lo solicitado, here está el resultado de console.log(require);


Creo que esto significa que module.exports en su módulo ./app/routes no está asignado para ser una función, por lo que require(''./app/routes'') no se resuelve en una función, por lo tanto, no puede llamarlo como un una función como esta require(''./app/routes'')(app, passport) .

./app/routes si quieres que ./app/routes más sobre eso.

Debería verse algo como esto;

module.exports = function(app, passport) { // code here }

Está exportando una función que luego se puede llamar como require(''./app/routes'')(app, passport) .

Otra razón por la que podría ocurrir un error similar es si tiene una dependencia de módulo circular donde el módulo A está tratando de require(B) y el módulo B está tratando de require(A) . Cuando esto sucede, será detectado por el subsistema require() y uno de ellos volverá como null y, por lo tanto, tratar de llamarlo como una función no funcionará. La solución en ese caso es eliminar la dependencia circular, generalmente rompiendo el código común en un tercer módulo que ambos pueden cargar por separado, aunque los detalles de la reparación de una dependencia circular son únicos para cada situación.


Para mí, cuando hago la función Invocada inmediatamente, necesito poner ; al final de require() .

Error:

const fs = require(''fs'') (() => { console.log(''wow'') })()

Bueno:

const fs = require(''fs''); (() => { console.log(''wow'') })()


Para mí, este fue un problema con las dependencias cíclicas.

IOW, el módulo A requería el módulo B y el módulo B requería el módulo A.

Entonces, en el módulo B, require(''./A'') es un objeto vacío en lugar de una función.

Cómo lidiar con dependencias cíclicas en Node.js


Para mí, obtuve un error similar cuando cambié entre ramas: una usaba una versión más nueva ("mecanografiada") de los paquetes @google-cloud/datastore que devuelve el objeto con el constructor Datastore como una de las propiedades del objeto exportado y cambié a otra rama por una tarea, se utilizó una versión anterior del almacén de datos, que exporta el constructor del almacén de datos "directamente" como valor module.exports . Obtuve el error porque node_modules todavía tenía módulos más nuevos utilizados por la rama desde la que cambié.


Recuerde exportar sus routes.js .

En routes.js , escriba sus rutas y todo su código en este módulo de funciones:

exports = function(app, passport) { /* write here your code */ }