개발자가 express.js 응용 프로그램을 개발할 수있는 IDE를 개발 중입니다. 따라서 개발자는 새로운 급행 응용 프로그램을 만들 수 있습니다. 리소스 소비가 중요하기 때문에 각 익스프레스 앱을 별도의 프로세스로 실행하고 싶지는 않습니다. 사실 그들은 모두 주 프로세스에서 node.js 모듈로 실행됩니다. 이제 문제는 코드 개발자가 어떤 코드를 작성할 것인지 전혀 모른다는 것입니다. 예를 들어 setInterval과 같은 함수를 사용하는지 여부는 알 수 없습니다.setInterval을 포함하여 모든 기능을 포함하는 nodejs 모듈을 완전히 제거하는 방법?
이 주 프로그램입니다 가정 : 나를 조금 더 설명하게
'use strict'
const mainApp = require('express')();
require('./userModule.js')();
mainApp.delete('/', function(req, res){
/*
What should I do here to delete the user code?
*/
res.status(202).send('deleted');
});
mainApp.listen(8000,() => console.log('Example app listening on port 8000!'))
그리고 이것은 userModule.js 기능에 사용자가 작성한 코드입니다 : 내가 이미 알고
'use strict'
module.exports = function(){
// code written by user will come below
setInterval(function(){
console.log('hello!!!');
}, 3000);
// code written by user will come above
}
다음 :
1- 설명 된대로 모듈 캐시를 삭제하십시오. here. 그건 도움이 안돼.
delete require.cache[require.resolve('./userModule.js')];
2 - 설명 된대로 ID가 알려지지 않은 경우 ClearInterval here. 나는 모든 간격을 지우고 싶지 않다! 또한 setInterval 함수에서만 작동합니다.
모듈이 주 프로세스에서 실행중인 경우 옵션이 없다는 사실에 도달했습니다. 내가 맞습니까?