2011-08-18 48 views
1

我正在使用帶有express.js的EJS模板引擎,並且我想使用視圖助手。我發現這個在GitHub上:https://github.com/tanema/express-helpers,但是當我嘗試使用它,我得到這個錯誤:在Express.js中的EJS - Express Helpers不工作 - (app)需要

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) 

,而這條線是線12 app.js:

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

,如果我讓

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

它確實會拋出錯誤,但也不起作用。

我的app.js文件的頂部如下:

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

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

想法?

在此先感謝!

回答

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

對不起,我知道這是真的晚了,但我是你所談論的叉的作者。它是express-helpers模塊的維護版本,應該用於將來的版本。

您遇到的問題是您在調用app.listen()之前應該要求幫助者。 app.listen()應該是你文件中最後的東西,尤其是關於應用程序設置的任何東西。