无法从自定义 node.js 模块导出函数

Unable to export a function from a custom node.js module

我正在测试 processTest.js 文件中的 node.js 自定义模块=28=]node.js根目录。这是它的内容:注意 module.exports 包含一个函数 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;

在主 node.js 脚本中,我们尝试按如下方式调用它:

const processTest = require("./processTest")

...

http.createServer(app).listen(port, '0.0.0.0', function () {
  console.debug(`HTTP: Listening on ${port} ..`)
  processTest.runTest();
})

但是我们得到错误

Uncaught TypeError: processTest.runTest is not a function

请注意 processTest 模块实际存在并且功能可见。

这里有什么问题,应该如何纠正?

您指的是 processTest 文件中的函数。 (module.exports = runTest)。使用 require("./processTest")()

或者只是将 module.exports 更改为

module.exports = {
    runTest
}

require("./processTest").runTest()会起作用