Notice
Recent Posts
Recent Comments
Link
HANA -J
12. 즉시호출 함수 표현식(IIFE)와 node.js require()함수 본문
Node.js에서 require()함수는 일반적으로 외부의 모듈을 불러올 때 사용한다.
// require()함수의 실행 구조
var require = (function(src){ //line 1 -> src를 받음
var fileAsStr = readFile(src) //line 2 -> src파일을 읽어 fileAsStr에 할당
var module.exports = {} //line 3 -> module.export에 빈 객체 할당
eval(fileAsStr) //line 4 -> fileAsStr을 eval함
return module.exports //line 5 -> 리턴함
})()
> eval 코드 : 빌트인 전역 함수인 eval함수에 인수로 전달되어 실행되는 소스코드. => eval실행 컨텍스트가 생성된다 (자세한건 23장)
외부파일에서 route.js파일을 작성
const express = require('express');
const router = express.Router();
const Post = require('../models/Post');
//New post
router.get('/new', function(req, res){
res.render('posts/new');
});
module.exports = router;
app.js파일에서 그파일을 불러오려면 require()함수를 이용
const route = require('/route');
//저코드를 작성했을때 require()함수의 실행구조
var require() = (function(src){
var fileAsStr = readFile(src)
var module.exports = {}
//exports라는 객체에 router객체를 할당 ..?
router.get('/new', function(req, res){
res.render('posts/new');
});
return module.exports
})()
내가 이해한 바로는 route.js파일자체의 모든코드를 한개의 객체로 생성해서 exports라는 객체에 할당을 해주면 즉시실행 함수이므로 밑의 파일을 읽기전에 함수를 실행해서 객체의 모든값을 가지고 밑의 파일을 실행할 수 있기 때문에 다른파일에 있는 값도 가져다가 쓸 수 있는거같다..
정확하게 이해는 아직 좀 어렵지만 뭔가 추상화의 느낌이 뭔지 오는거같다.. 열공하자🔥
728x90
'개발 > Javascript' 카테고리의 다른 글
25. 클래스 (0) | 2021.11.29 |
---|---|
13. 전역변수의 문제점 (0) | 2021.11.28 |
12. 함수(1) (0) | 2021.11.25 |
8-11장 (0) | 2021.11.20 |
1-7장 (0) | 2021.11.19 |
Comments