无法从自定义 node.js 模块导出函数
Unable to export a function from a custom node.js module
我正在测试 processTest.js 文件中的 node.js 自定义模块=28=]node.js根目录。这是它的内容:注意 module.export
s 包含一个函数 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()
会起作用
我正在测试 processTest.js 文件中的 node.js 自定义模块=28=]node.js根目录。这是它的内容:注意 module.export
s 包含一个函数 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()
会起作用