1

私はNodeJSに問題があります。これは初めてです。nodeJS、express、および JQTPL を使用して、github API の呼び出しに関するチュートリアルに従いますが、問題はアプリケーション構成、特にエンジン定義にあります。

    var express = require('express'),
    app = express(),
    ...
    ;

app.configure(function(){
    app.set('view engine', 'html');
    app.set('view options', {layout: false});
    app.engine('.html', require('jqtpl').__express);
    });

// When we go to the URL "/" we go the the index.html
app.get("/", function(req, res){
    res.render("index");
});

app.get("/board", function(req, res) {
    res.render("board");
})

app.engine 呼び出しが失敗しました。エラーは次のとおりです。

 if ('function' != typeof fn) throw new Error('callback function required');

    ^
Error: callback function required
    at Function.app.engine (/var/lib/stickshift/51d5872b5973ca8338000033/app-root/data/547742/node_modules/express/lib/application.js:173:38)
    at Function. (/var/lib/stickshift/51d5872b5973ca8338000033/app-root/data/547742/app.js:15:9)
    at Function.app.configure (/var/lib/stickshift/51d5872b5973ca8338000033/app-root/data/547742/node_modules/express/lib/application.js:392:61)
    at Object. (/var/lib/stickshift/51d5872b5973ca8338000033/app-root/data/547742/app.js:12:5)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.runMain (module.js:492:10)
    at process.startup.processNextTick.process._tickCallback (node.js:244:9)

コールバックとは何かを理解しています..など..しかし、私が見つけた app.engine を呼び出す唯一の方法は、このように構築されています。

ご協力ありがとうございました !

4

1 に答える 1

0

jqtpl壊れているようです (少なくとも NPM リポジトリのバージョン。GH バージョンの方が適切に機能する可能性があります): Express のバージョンを特定しようとしますが、express.versionもう存在しないプロパティ ( ) を使用しています。

回避策は次のとおりです。

var express = require('express');
var app     = express();

app.configure(function(){
  app.set('view engine', 'html');
  app.engine('html', require('jqtpl/lib/express').render);
});

app.get("/", function(req, res){
  res.render("index"); // this renders "views/index.html"
});

app.listen(3013);
于 2013-07-05T10:35:10.683 に答える