Estoy probando un módulo personalizado simple de node.js representado por el archivo processTest.js en el directorio raíz de node.js. Aquí está su contenido: observe que module.export s incluye la función processTest() :
'use strict'; const { spawn } = require( 'child_process' ); const ls = spawn( 'ls', [ '-lh', '/usr' ] ); function runTest() { ls.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); ls.stderr.on('data', (data) => { console.log(`stderr: ${data}`); }); ls.on('close', (code) => { console.log(`child process exited with code ${code}`); }); } module.exports = runTest;En el script principal de node.js intentamos invocarlo de la siguiente manera:
const processTest = require("./processTest") ... http.createServer(app).listen(port, '0.0.0.0', function () { console.debug(`HTTP: Listening on ${port} ..`) processTest.runTest(); })Sin embargo obtenemos el error
TypeError no detectado: processTest.runTest no es una función
tenga en cuenta que el módulo processTest está realmente presente y la función es visible.
Te refieres a la función en el archivo processTest . ( module.exports = runTest ). Utilice require("./processTest")()
O simplemente cambie module.exports a
module.exports = { runTest } y require("./processTest").runTest() funcionará