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 に答える