Express 4 套准车把
Express 4 register handlebars
我正在尝试 运行 使用 Node.js 的 Handlebars 示例。但是,我在注册 Handlebars 时遇到了问题。我一直收到错误
Error: callback function required at line 7.
var express = require('express');
var app = express();
var port = process.env.PORT || 8888;
var router = express.Router();
app.set('view engine', 'html');
app.engine('html', require('handlebars').__express);
router.get('/', function(req, res)
{
console.log("REACHG");
var source = "<p>Hello, my name is {{name}}. I am from {{hometown}}. I have " +
"{{kids.length}} kids:</p>" +
"<ul>{{#kids}}<li>{{name}} is {{age}}</li>{{/kids}}</ul>";
var template = Handlebars.compile(source);
var data = { "name": "Alan", "hometown": "Somewhere, TX",
"kids": [{"name": "Jimmy", "age": "12"}, {"name": "Sally", "age": "4"}]};
var html = template(data);
res.render(html);
});
app.use('/', router);
app.listen(port);
console.log('listening to port '+port);
我测试了一些可能的解决方案,但这个解决方案按预期工作:
var express = require('express');
var app = express();
var expressHbs = require('express3-handlebars');
app.engine('hbs', expressHbs({extname:'hbs', defaultLayout:'main.hbs'}));
app.set('view engine', 'hbs');
app.get('/', function(req, res){
var data = {name: 'Gorilla'};
res.render('simple', data);
});
app.listen(80);
//--||--||--||--||--||--||--||--||--||
simple.hbs
Showing <em>name</em>
//--||--||--||--||--||--||--||--||--||
main.hbs
<head>
<title>Handlebars examples with Express 4</title>
</head>
<body>
{{{body}}}
</body>
</html>
来源:http://code.runnable.com/U07z_Y_j9rZk1tTx/handlebars-template-examples-with-express-4-for-node-js
我正在尝试 运行 使用 Node.js 的 Handlebars 示例。但是,我在注册 Handlebars 时遇到了问题。我一直收到错误
Error: callback function required at line 7.
var express = require('express');
var app = express();
var port = process.env.PORT || 8888;
var router = express.Router();
app.set('view engine', 'html');
app.engine('html', require('handlebars').__express);
router.get('/', function(req, res)
{
console.log("REACHG");
var source = "<p>Hello, my name is {{name}}. I am from {{hometown}}. I have " +
"{{kids.length}} kids:</p>" +
"<ul>{{#kids}}<li>{{name}} is {{age}}</li>{{/kids}}</ul>";
var template = Handlebars.compile(source);
var data = { "name": "Alan", "hometown": "Somewhere, TX",
"kids": [{"name": "Jimmy", "age": "12"}, {"name": "Sally", "age": "4"}]};
var html = template(data);
res.render(html);
});
app.use('/', router);
app.listen(port);
console.log('listening to port '+port);
我测试了一些可能的解决方案,但这个解决方案按预期工作:
var express = require('express');
var app = express();
var expressHbs = require('express3-handlebars');
app.engine('hbs', expressHbs({extname:'hbs', defaultLayout:'main.hbs'}));
app.set('view engine', 'hbs');
app.get('/', function(req, res){
var data = {name: 'Gorilla'};
res.render('simple', data);
});
app.listen(80);
//--||--||--||--||--||--||--||--||--||
simple.hbs
Showing <em>name</em>
//--||--||--||--||--||--||--||--||--||
main.hbs
<head>
<title>Handlebars examples with Express 4</title>
</head>
<body>
{{{body}}}
</body>
</html>
来源:http://code.runnable.com/U07z_Y_j9rZk1tTx/handlebars-template-examples-with-express-4-for-node-js