2

私はHandlebarsが初めてで、カスタムヘルパーにSWAGライブラリを使用しようとしていますが、成功していません. たとえば、file.handlebars {{lowercase "BENDER SHOULD NOT BE ALLOWED ON TV"}}に表示しようとすると、エラーError: Could not find property 'lowercase' I run npm install swag が表示されます

私のapp.jsは次のとおりです。

var express = require('express')
  , http = require('http')
  , routes = require('./routes')
  , path = require('path')
  ,Swag = require('swag')
  , handlebars = require('handlebars');

var app = express();
var engines = require('consolidate');
app.engine('handlebars', engines.handlebars);

app.configure(function() {
    app.set('view engine', 'handlebars');
    app.set('views', __dirname + '/views');
    app.set('port', process.env.PORT || 3000);
    app.use(express.favicon());
    app.use(express.logger('dev'));
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(app.router);
    app.use(express.static(path.join(__dirname, 'public')));
});

app.get('/dashBoard', routes.getDashboard);

http.createServer(app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});

よろしくお願いいたします。

アルクディア

4

2 に答える 2

0

あなたが試すことができます:

Swag.registerHelpers(ハンドルバー);

于 2015-01-07T14:01:04.743 に答える
0

100% 確実ではありませんが、私の推測では、consolidateパッケージはハンドルバーの独自のロケール コピーを返します。そのため、必要なハンドルバーではなく、スワッグが適用されるグローバル ハンドルバーではありません。

スキーマ化するには:require("Handlebars") !== require("consolidate").handlebars

したがって、統合ハンドルバー インスタンスにスワッグ ヘルパーを登録する必要があると思います。(そして、Swagコードソースをチェックしましたが、ATMの可能性はないと思います)

于 2013-05-04T16:03:11.987 に答える