Node.js
Node.js 에서 require를 활용해 소스를 정리해보자
InspiredJW
2012. 2. 27. 22:30
Node.js 에서 require('경로'); 를 활용하면 그 .js 파일 기준으로 상대 경로에 위치한
js 파일을 가져와 쓸 수 있습니다.
여러 함수를 라우팅 페이지와 함께 다같이 몰아 넣는게 아니라
HTTP 요청을 라우팅 할 때 함수들을 의미 별로 파일로 나누어서
관련 함수들을 모아놓고 사용하면 아주 유용하죠.
문제는 저 상대 경로 입니다.
나름 절대 경로 비슷하게
자체적으로 root directory 가 있다면
그걸 기준으로 폴더나 파일을 정리해서
require를 사용하면 참 좋을텐데요.
이럴 때는
process.cwd() 를 활용하시면 해결됩니다.
예를들어
웹 프레임워크가 app.js 로 실행된다고 할 때
node app.js 로 실행을 하게 됩니다.
이 때 이 경로가 process.cwd가 됩니다.
각종 설정 파일들은
이렇게 해주면
프로젝트 root directory 안에 있는 config 폴더 안에 있는 db.js 파일을 config 라는 변수에 로드하게 됩니다.
db.js 파일 안에서는
예제와 같이 함수를 정의했을 경우 config.example() 을 호출하면 node를 실행한 콘솔 창에
"This is an example" 이라고 찍히게 됩니다.
js 파일을 가져와 쓸 수 있습니다.
여러 함수를 라우팅 페이지와 함께 다같이 몰아 넣는게 아니라
HTTP 요청을 라우팅 할 때 함수들을 의미 별로 파일로 나누어서
관련 함수들을 모아놓고 사용하면 아주 유용하죠.
문제는 저 상대 경로 입니다.
나름 절대 경로 비슷하게
자체적으로 root directory 가 있다면
그걸 기준으로 폴더나 파일을 정리해서
require를 사용하면 참 좋을텐데요.
이럴 때는
process.cwd() 를 활용하시면 해결됩니다.
예를들어
웹 프레임워크가 app.js 로 실행된다고 할 때
node app.js 로 실행을 하게 됩니다.
이 때 이 경로가 process.cwd가 됩니다.
각종 설정 파일들은
var path = process.cwd(); var config = require( path + '/config/db' );
이렇게 해주면
프로젝트 root directory 안에 있는 config 폴더 안에 있는 db.js 파일을 config 라는 변수에 로드하게 됩니다.
db.js 파일 안에서는
module.exports.example = function(req, res) { console.log(" This is an example "); };이렇게 해주면
예제와 같이 함수를 정의했을 경우 config.example() 을 호출하면 node를 실행한 콘솔 창에
"This is an example" 이라고 찍히게 됩니다.