English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Node.js 모듈의 대체 기능 – 일부이 경우, 기존 모듈을 재구성하여 기능을 개선하고 싶습니다. 이 Node.js 강의에서는 Node.js 모듈의 기능을 재구성하는 방법을 배웁니다.
Node.js 모듈의 기존 기능을 재구성하려면 다음 단계별 가이드를 따르세요:
모듈에서 기능을 덮어쓰는 첫 단계는 모듈 자체를 포함하는 require 함수를 사용하는 것입니다.
var newMod = require('<module_name>');
모듈을 변수에 검색했습니다.
newMod 모듈에서 변수를 사용할 때, 다음 문법을 사용하여 함수를 제거합니다.
delete newMod['<function_name>'];
기억해야 할 것은, 변경된 내용은 모듈 변수 newMod에 대한 변경만이며, 원래 모듈 자체에 대한 변경은 아닙니다.
이전 단계에서 제거한 동일한 이름을 가진 함수를 추가하기 위해 다음과 같은 문법을 사용하여 newMod 모듈에서 변수를 사용합니다。
newMod.<function_name> = function(function_parameters) { // function body };
덮어쓰기된 기능을 적용하기 위해 모듈을 다시 내보내야 합니다.
module.exports = newMod;
이제, newMod 변수를 사용하여 함수를 호출하고 덮어쓰기된 기능을 실행할 수 있습니다.
이 예제에서는 Node fs 모듈의 readFile() 함수를 덮어쓰겠습니다.
모듈의 기능을 덮어쓰는 첫 단계는 모듈 자체를 require 함수를 사용하여 포함하는 것입니다.
// 덮어쓰기할 기능을 가진 모듈을 포함합니다 var fs = require('fs'); // 덮어쓰기할 기능을 제거합니다 delete fs['readFile']; // 동일한 이름을 가진 새 함수를 추가합니다 fs.readFile = function(str){ console.log("기능이 덮어쓰기되었습니다."); console.log(str); } // 변경 사항을 적용하기 위해 모듈을 다시 내보내기 module.exports = fs // 새로 덮어쓰기된 기능을 사용할 수 있습니다 fs.readFile("sample.txt");
출력 결과
~/workspace/nodejs$ node node-js-overriding-function-in-module.js
모듈에 새로 추가된 함수로부터 메시지
sample.txt
readFile() 함수를 다시 작성하는 것은 좋은 아이디어가 아니지만, 데모에 충분합니다.
이 튜토리얼에서 -Node.js 모듈의 기능을 다시 작성하는 중,우리는 예제 Node.js 프로그램을 사용하여 Node.js 모듈의 기능을 배웠습니다。