2012-06-23 2 views
1

대 exports.index 나는커피 스크립트 개체 구문 : 수출 = {}

exports.index = (req, res) -> 
    res.render "index", 
    title: "Hello" 

가 ExpressJS 작동

exports.index = function(req, res) { 
    return res.render("index", { title: "Hello" }) 
} 

뭔가로 컴파일 것을 찾을 수 있습니다. 그러나, 나는 내가 사용하는 수 있다고 생각 : 그래서

exports = 
    index: (req, res) -> 
     res.render "index", 
      title: "Hello" 

을 내가 모든 경로에 대한 exports.xxx를 입력 할 필요가 늘 것으로,하지만 ExpressJS, 왜 작동하도록 나타나지 않습니다

var exports; 
exports = { 
    index: function(req, res) { 
    return res.render("index", { 
     title: "Hello" 
    }); 
    } 
}; 

로 컴파일 ?

Error: In /labs/Projects/jiewmeng/routes/index.coffee, Parse error on line 1: Unexpected '{' 
    at Object.parseError (/usr/lib/node_modules/coffee-script/lib/coffee-script/parser.js:477:11) 
    at Object.parse (/usr/lib/node_modules/coffee-script/lib/coffee-script/parser.js:554:22) 
    at /usr/lib/node_modules/coffee-script/lib/coffee-script/coffee-script.js:43:20 
    at Object..coffee (/usr/lib/node_modules/coffee-script/lib/coffee-script/coffee-script.js:19:17) 
    at Module.load (module.js:353:31) 
    at Function._load (module.js:311:12) 
    at Module.require (module.js:359:17) 
    at require (module.js:375:17) 
    at Object.<anonymous> (/labs/Projects/jiewmeng/server.coffee:6:12) 
    at Object.<anonymous> (/labs/Projects/jiewmeng/server.coffee:74:4) 
+0

가능한 중복 (http://stackoverflow.com/questions/9627044/understanding-exports-in-nodejs) –

답변

3

당신이 새로운 객체에 exports라는 이름의 지역 변수를 할당하는 경우에 당신이 "진짜"exports 객체에 속성을 할당 할 수 없습니다, 한마디로 this answer explaining module.exports vs exports = foo vs exports.foo = bar

를보고, 코드하지 않습니다 따라서하시기 바랍니다 예상대로 작동합니다. A) module.exports에 개체를 할당하거나 B) 기존 exports 개체에 속성을 할당 할 수 있습니다. 커피 스크립트에서 잘 작동

하나 개의 패턴이있다 :

module.exports = { 
    SomeClass 
    someFunction 
    someObject 
} 
[NodeJS에서 이해 수출]의
+0

내 메서드가 기존의 모든 내보내기를 재정의한다고 할 수 있습니까? 그런 다음 module.exports를 사용하면 기존 내보내기 변수를 "확장"합니다. –

+0

아니요. 'exports.property = foo'를 실행하면 내보내기 개체를 "확장"합니다. 'exports = bar'를하는 것은 실수/버그이며 모듈이 내 보낸 속성에 아무런 영향을 미치지 않습니다. 'module.exports = foo'를 사용하면 node.js가 제공하는 빈 객체 대신 새로운 객체를 내보낼 수 있습니다. –