Nie chcę używać silnika szablonowego Jade, który domyślnie jest obsługiwany przez Express. Próbowałem się do tej instrukcji, ale to się nie powiedzie:Jak używać szablonów podkreślników zamiast Jade w Express?
http://blog.luksidadi.com/expressjs-underscore-template/
Błąd w pytaniu:
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: callback function required
at Function.engine (/home/me/blog/node_modules/express/lib/application.js:173:38)
at Object.<anonymous> (/home/tk/blog/app.js:28:5)
at Module._compile (module.js:432:26)
at Object..js (module.js:450:10)
at Module.load (module.js:351:31)
at Function._load (module.js:310:12)
at Array.0 (module.js:470:10)
at EventEmitter._tickCallback (node.js:192:40)
uzyskać to przy próbie uruchomienia serwera z:
node app.js
Jak rozwiązać ten problem?
app.js:
/**
* Module dependencies.
*/
var express = require('express')
, routes = require('./routes')
, user = require('./routes/user')
, http = require('http')
, path = require('path');
var app = express();
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
//app.set('view engine', 'jade');
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')));
});
// Add these lines to register underscore template
var _ = require('underscore');
app.engine('.html', {
compile: function(str, options){
var compiled = require('underscore').template(str);
return function(locals) {
return compiled(locals);
};
}
});
app.configure('development', function(){
app.use(express.errorHandler());
});
app.get('/', routes.index);
app.get('/users', user.list);
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
szlaki/index.js:
/*
* GET home page.
*/
exports.index = function(req, res){
res.render('index.html', { title: 'Express' });
};
layout.html:
<html>
<head>
<title><%=title%></title>
</head>
<body>
<%=body%>
</body>
</html>
index.html:
Hello world
Więcej kontekście, proszę. Ślady stosu są zwykle bezużyteczne bez kodu, z którym można się do nich odnieść. –
@JackManey Zaktualizowano pytanie, aby dołączyć kod. Po prostu poszedłem za przewodnikiem po tym łączu. – TK123
Więc możesz wypróbować 'ejs',' jshtml' lub 'hogan.js'? –