2011-08-18 2 views
1

EJS 템플릿 엔진을 express.js와 함께 사용하고 있는데보기 도우미를 사용하고 싶습니다. 나는 GitHub의에서 이걸 발견 : https://github.com/tanema/express-helpers,하지만 난 그것을 사용하려고하면이 오류 얻을 : 나는 그것을 할 경우Express.js의 EJS - Express 도우미가 작동하지 않음 - (응용 프로그램) 필요

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

을하고이 라인은 라인 app.js 12 인 반면

TypeError: object is not a function 
at Object.CALL_NON_FUNCTION (native) 
at Object. (/home/node/app/app.js:12:40) 
at Module._compile (module.js:402:26) 
at Object..js (module.js:408:10) 
at Module.load (module.js:334:31) 
at Function._load (module.js:293:12) 
at Array. (module.js:421:10) 
at EventEmitter._tickCallback (node.js:126:26) 

var helpers = require('express-helpers'); 

오류가 발생하지만 작동하지 않습니다.

var express = require('express'); 
var app = express.createServer(); 
app.listen(34573); 

// !Requires 
var helpers = require('express-helpers')(app); 

아이디어를 다음과 같이 app.js 파일의

내 최고는?

미리 감사드립니다.

답변

1

나쁨.

내가 링크를 섞어 놓은 것으로 밝혀졌으며, 내가 시도한 사용법은 분기 된 분기를 의미합니다. 브랜치를 복제하고 기본값 인 https://github.com/masahiroh/express-helpers을 덮어 썼고 코드가 올바른 브랜치로되어 있기 때문에 코드가 작동했습니다.

어쨌든 고마워!

1

당신은 app.locals()에 전달해야합니다

var helpers = require('express-helpers')(); 

app.locals ({ 
     "form_tag" : helpers.form_tag, 
     "form_tag_end" : helpers.form_end_tag, 
     "link_to" : helpers.link_to, 
     "input_field_tag" : helpers.input_field_tag, 
     "submit_tag" : helpers.submit_tag 
      ... 
     }); 
1

미안,이 말 정말 알고하지만 난 당신이 얘기하는 포크의 저자입니다. 그것은 표현 - 헬퍼 모듈의 유지 된 버전이며 이후 버전을 위해 사용해야합니다.

문제는 app.listen()을 호출하기 전에 도우미가 필요하다는 것입니다. app.listen()은 파일의 마지막 항목이어야하며 특히 앱 설정과 관련된 항목이어야합니다.

관련 문제