nodejs 에서 모듈 정의 실례 상세 설명

4241 단어 nodejs모듈
본 고의 실례 는 nodejs 에서 모듈 정의 방법 을 설명 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
1.모듈 정의
nodejs 모듈 이란 파일 입 니 다!하나의.js 파일 은 nodejs 모듈 입 니 다.모듈 은 파일 과 일일이 대응 합 니 다.그러면 인용 모듈 은 require('파일 경로')입 니 다.
예:

var circle = require('./circle.js');
console.log( 'The area of a circle of radius 4 is '
      + circle.area(4));
이 이름 은 foo.js 입 니 다.

var PI = Math.PI;
exports.area = function (r) {
 return PI * r * r;
};
exports.circumference = function (r) {
 return 2 * PI * r;
};

이 이름 은 circle.js 입 니 다.
두 개의 js 코드 파일 은 같은 폴 더 아래 에 놓 여 있다.
다른 폴 더 의 모듈 을 참조 하려 면 경 로 를 직접 작성 하 십시오.이 경로 형식 은 Liux 의 경로 형식 과 같 습 니 다./../.....................................................  이것 은 절대 경로 입 니 다.
exports 와 module.exports 의 차 이 를 주의해 야 합 니 다.exports 는 사실 module.exports 의 인용 일 뿐 입 니 다(a=2,b=a 처럼 b 는 a 만 인용 하고 b=c 일 때 b 는 a 를 가리 키 지 않 습 니 다).그러면 홈 페이지 의 뜻 을 알 수 있 습 니 다(exports 의 루트 를 함수 로 설명 하거나 object 를 만 들 고 싶 으 면,그러면 exports 대신 module.exports 를 사용 하 세 요)
2.반복 참조
a.js:

console.log('a starting');
exports.done = false;
var b = require('./b.js');
console.log('in a, b.done = %j', b.done);
exports.done = true;
console.log('a done');

b.js:

console.log('b starting');
exports.done = false;
var a = require('./a.js');
console.log('in b, a.done = %j', a.done);
exports.done = true;
console.log('b done');

main.js:

console.log('main starting');
var a = require('./a.js');
var b = require('./b.js');
console.log('in main, a.done=%j, b.done=%j', a.done, b.done);

보 셨 습 니까?이 a.js 와 b.js 는 서로 인용 되 었 습 니 다.이렇게 하면 무한 순환 이 되 지 않 을까요?아 닙 니 다.이것 은 로드 가 완료 되 지 않 은 것 일 뿐 입 니 다.즉,하나의 module 일 부 는 사용 할 수 없 는 상태 에 있 습 니 다.여기 서 a.js 는 먼저 불 러 옵 니 다.그러나 a.js 를 불 러 오 는 동시에 a.js 는 b.js 를 불 러 옵 니 다.이때 a.js 는 정체 상태 에 있 습 니 다.require 앞의 데이터 만 불 러 왔 을 뿐 b.js 는 계속 불 러 옵 니 다.다음은 실행 결과 입 니 다.

$ node main.js
main starting
a starting
b starting
in b, a.done = false
b done
in a, b.done = true
a done
in main, a.done=true, b.done=true

3.핵심 모듈
핵심 모듈 이란 nodejs 가 개발 한 공공 가방 으로 자바 의 공공 가방 과 같다.핵심 모듈 에 접근 하려 면 require('파일 이름')만 있 으 면 접근 할 수 있 습 니 다.사실 공공 모듈 패 키 지 는 nodejs 에 설 치 된 node 입 니 다.modulespm\lib 아래.
4.파일 모듈
인용 이 정확하게 일치 하지 않 을 때 nodejs 는 확장자:.js,.json,and then.node.js 파일 은 JavaScript 파일 입 니 다..json 은 json 형식 으로 해석 합 니 다.node 는 dlopen 으로 추가 모듈 로 불 러 옵 니 다.
'/','./'와 같은 기호 수식 이 없 을 때 모듈 이 불 러 온 곳 은 node 입 니 다.modules,이 파일 이 어디 에 있 는 지 아래 를 보 세 요.
5.node_모듈 폴 더
만약 에 모듈 을 인용 할 때'/'.../'../'와 같은 형식 기호 가 한정 되 어 있 지 않다 면 찾 는 방식 은 다음 과 같 습 니 다.만약 에 파일 이'/home/ry/projects/foo.js'에 있다 고 가정 하면 이 bar.js 는 다음 과 같 습 니 다.
/home/ry/projects/node_modules/bar.js
/home/ry/node_modules/bar.js
/home/node_modules/bar.js
/node_modules/bar.js
즉,현재 루트 부터 한 걸음 한 걸음 부모 디 렉 터 리 에 node 를 추가 합 니 다.modules 폴 더 를 모듈 주소 로 합 니 다.require('bar.js')이런 인용 은require('example-module/path/to/file')과 같은 해석 이다.
6.폴 더 이름 으로 모듈 참조
크게 두 가지 로 나 뉜 다.1)package.json 파일 을 쓰 고 이 파일 은 프로젝트 의 루트 디 렉 터 리 에 쓰 이 며 그 형식 은 다음 과 같다.

{ "name" : "some-library",
 "main" : "./lib/some-library.js" }

이렇게 쓴 require('/some-library')의 진정한 것 은?

require('./some-library/lib/some-library.js')

2)index.js 또는 index.node 파일 로 불 러 오기 로 직접 약 속 했 습 니 다.같은 require 는 다음 과 같이 불 러 올 수 있 습 니 다.
./some-library/index.js
./some-library/index.node
7.캐 시
한 모듈 의 여러 번 인용 은 한 번 만 불 러 옵 니 다.자바 의 static 키워드 장식 처럼.그러나 주의해 야 할 것 은 당신require('bar.js')과 같은 형식 이 매번 같은 파일 을 인용 할 것 이 라 고 보장 하 는 것 은 아 닙 니 다(다른 폴 더 에서 인용 할 수 있 기 때 문 입 니 다).
본 논문 에서 말 한 것 이 여러분 의 nodejs 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기