2013-09-02 3 views
1

모듈을 사용할 때 일반적인 규칙을 따르고 싶습니다.Node.js 모듈 올바른 사용법

나는 수출을하지 못했다면 코드를 작성했다. 그 다음 전체 파일을 포장했다. module.exports {...};.
작동하지만, 나는 단지 내가 해고 당할 수있는 일을하지 않기를 바란다. 그것은 정확하기가 너무 간단하다고 느낍니다 ... 나는 그것을 생각하고 있습니까?

module.exports=function() { 

    var express=require('express'); 
    var app=express(); 

    app.use(express.static(__dirname+'/root')); 


    var clientCount=0, currentid=0; 
    var players=new Array(); 


    app.get('/login/*', function(request, response) { 
     ... 
    } 

    ... 

} 

답변

4

예제에서는 익스프레스 서버처럼 보이는 단일 함수를 내보내는 것처럼 보입니다. 스 니펫의 해당 모듈은 아무 것도 내보내 지 않으므로 래퍼 기능이 필요하지 않습니다. 일반적으로 server.js 유형의 파일은 module.exports에 대한 언급이없는 기본 진입 점 프로그램으로 표현 서버를 실행합니다. 그들은 node server.js을 실행할 때 실행되는 최상위 코드 만 가지고 있습니다.

어떤 이유로 당신은 같은 별도의 모듈이이 모듈을 필요로 함수 호출을 시작할 수 있도록하려면 : 당신은 OK입니다 무슨 그런

var server = require('./server'); 
server(); //call the function to start the express server 

,하지만 난 유지하려고 ECMAScript 6가 채택되면서 선호도가 떨어지는 CommonJS 확장과 긴밀히 연결된 내 소스 코드의 일부는 아래쪽에 module.exports 구성의 맨 위에 격리 된 require 문으로 제한되고 순수한 JavaScript 만 제공됩니다 (CommonJS 항목 없음) 파일의 중간에. 나는이 패턴을 선호합니다 :

//CommonJS require statements 
var express = require('express')(); 

//main module body code. Pure JS. No CommonJS pollution. 
function setup() { 
    ... 
} 

//CommonJS exports stuff 
module.exports = setup; 

제 생각에는 조금 깔끔합니다.

+0

동일한 패턴을 사용합니다. jquery 플러그인 패턴처럼 많이 보입니다. – qodeninja