1

我正在使用带有 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);

想法?

提前致谢!

4

4 回答 4

1

我的错。

事实证明,我的链接混合在一起,而我尝试的用法是用于分叉的分支。我克隆了分支,并覆盖了默认的https://github.com/masahiroh/express-helpers并且代码在正确的分支上正常工作。

不管怎么说,还是要谢谢你!

于 2011-08-18T10:22:01.827 回答
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
            ...
        });
于 2014-02-21T12:24:21.147 回答
1

抱歉,我知道这真的很晚了,但是我是您正在谈论的叉子的作者。它是 express-helpers 模块的维护版本,应该用于未来的版本。

您遇到的问题是您应该在调用 app.listen() 之前需要帮助程序。app.listen() 应该是文件中的最后一件事,尤其是有关应用程序设置的任何内容。

于 2014-03-06T15:23:11.913 回答
0

你也可以使用这个 npm 包,它提供了更好的扩展助手。

https://www.npmjs.com/package/native-view-helpers

npm install native-view-helpers --save

希望它会帮助某人。

于 2015-04-07T22:33:02.190 回答