Reputation: 63022
I am testing out a simple node.js custom module represetned by the processTest.js file in the node.js root directory. Here is its contents: notice that the module.export
s includes the one function 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;
In the main node.js script we try to invoke it as follows:
const processTest = require("./processTest")
...
http.createServer(app).listen(port, '0.0.0.0', function () {
console.debug(`HTTP: Listening on ${port} ..`)
processTest.runTest();
})
However we get the error
Uncaught TypeError: processTest.runTest is not a function
note that the processTest
module is actually present and the function is visible.
What is wrong here and how should it be corrected?
Upvotes: 1
Views: 329
Reputation: 1814
You are referring to the function in the processTest
file. (module.exports = runTest
). Use require("./processTest")()
Or just change the module.exports
to
module.exports = {
runTest
}
and require("./processTest").runTest()
will work
Upvotes: 2