我正在使用带有express.js的EJS模板引擎,我想使用视图助手。我在github上找到了这个:https://github.com/tanema/express-helpers,但是当我尝试使用它时,我收到了这个错误:
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)
而这一行是app.js上的第12行:
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);
想法?
提前致谢!
答案 0 :(得分:1)
我的坏。
事实证明我的链接是混合的,我尝试的用法是用于分叉分支。我克隆了分支,并覆盖了默认的https://github.com/masahiroh/express-helpers,代码按照预期的正确分支工作。
非常感谢!
答案 1 :(得分: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
...
});
答案 2 :(得分:1)
对不起,我知道这已经很晚了,不过我是你所说的叉子的作者。它是express-helpers模块的维护版本,应该用于将来的版本。
您遇到的问题是在调用app.listen()之前应该要求帮助程序。 app.listen()应该是你文件中的最后一件事,特别是关于应用程序设置的任何内容。
答案 3 :(得分:0)
你也可以使用这个npm包提供更好的&延长的帮助者。
https://www.npmjs.com/package/native-view-helpers
npm install native-view-helpers --save
希望它能帮到某人。