마치 노드 모듈의 개인 변수가 "재설정"된 것처럼 보입니다. 예 : 나는 모듈노드 모듈. 개인 변수가 재설정됩니다
var exec = require('child_process').exec;
var process;
module.exports.start = function() {
if (!process) {
process = exec('Some process');
}
};
module.exports.stop = function() {
if (process) {
process.kill();
}
};
나는 내가 start
후 stop
함수를 호출하는 경우 process
변수가 정의되지 것입니다 직면하고 문제에 다음과 같은 코드가 있습니다.
분명히 이것에 대한 해결책은 객체/클래스를 정의하고 그것을 모듈에 노출시키는 것입니다.
하지만 노드에서 모듈이 어떻게 작동하는지 궁금합니다. 모듈이 require
'일 때 모든 개인 변수는 어떻게됩니까?
내가 테스트 할 REPL에서이 모듈을 사용하고 있지만, 예를 들어 사용량이 바로 node.js
문서에서
var my_module = require('./my_module');
// the child process starts fine
my_module.start();
// after some time
// but does not end
my_module.stop();
이 모듈을 사용하는 코드를 표시하십시오 ... – Justin808
아마도'exec' 간단히 *'* undefined'를 리턴합니까? – Bergi
예를 보여주었습니다. @Bergi no exec는 ChildProcess 객체를 반환합니다. – Umair