EJS в Express.js - Экспресс помощники не работают - (приложение) требуется - PullRequest
1 голос
/ 18 августа 2011

Я использую шаблонизатор EJS с express.js и хочу использовать помощники вида.Я нашел это на 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)

, тогда как эта строка - строка 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);

Идеи?

Заранее спасибо!

Ответы [ 4 ]

1 голос
/ 21 февраля 2014

Вы должны перейти к 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 голос
/ 06 марта 2014

Извините, я знаю, что действительно поздно, однако я являюсь автором развилки, о которой вы говорите.Это поддерживаемая версия модуля экспресс-помощников, и ее следует использовать для будущих версий.

Проблема, с которой вы столкнулись, заключается в том, что вам необходимо обратиться за помощью к помощникам, прежде чем вызывать app.listen ().app.listen () действительно должен быть последним элементом в вашем файле, особенно в отношении настройки приложения.

1 голос
/ 18 августа 2011

Мой плохой.

Оказывается, у меня были смешанные ссылки, и использование, которое я пытался, было предназначено для разветвленной ветви.Я клонировал ветку и переписал значение по умолчанию https://github.com/masahiroh/express-helpers, и код работал, как и предполагалось, с правильной веткой.

В любом случае спасибо!

0 голосов
/ 08 апреля 2015

Вы также можете использовать этот пакет npm, который предоставляет более качественные и расширенные помощники.

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

npm install native-view-helpers --save

Надеюсь, это кому-нибудь поможет.

...