Начал осваивать Node.js + Express в качестве шаблонизатора выбрал Handlebars(как в учебнике) Вот код: Код | var express = require('express');
var app = express(); var handlebars = require('express-handlebars') .create({defaultLayout:'main'});
app.set('port', process.env.PORT || 3000); app.engine('handlebars', handlebars.engine) app.set('view engine', 'handlebars')
app.get('/', function(req, res){ res.render('home') // res.type('text/plain'); // res.send('startPage | Main Page'); });
app.get('/about', function(req, res){ res.type('text/plain'); res.send('startPage | About Page'); });
app.use(function(req, res){ res.type('text/plain'); res.status(404); res.send('404 - Not Found!') });
app.use(function(err, req, res, next){ console.error(err.stack); res.type('text/plain'); res.status(500); res.send('500 - Server Error'); });
app.listen(app.get('port'), function(){ console.log('Express is running on http://localhost '+app.get('port')+' press Ctrl+C to exit.') });
|
Пока выводил просто текст всё было норм Попытался вывести шалон: Код | app.get('/', function(req, res){ res.render('home') // res.type('text/plain'); // res.send('startPage | Main Page'); }
|
получаю ошибки: Цитата | Error: Failed to lookup view "home" in views directory "C:\Workspace\Node\Express\views" at Function.render (C:\Workspace\Node\Express\node_modules\express\lib\application.js:580:17) at ServerResponse.render (C:\Workspace\Node\Express\node_modules\express\lib\response.js:1012:7) at C:\Workspace\Node\Express\startpage.js:13:9 at Layer.handle [as handle_request] (C:\Workspace\Node\Express\node_modules\express\lib\router\layer.js:95:5) at next (C:\Workspace\Node\Express\node_modules\express\lib\router\route.js:137:13) at Route.dispatch (C:\Workspace\Node\Express\node_modules\express\lib\router\route.js:112:3) at Layer.handle [as handle_request] (C:\Workspace\Node\Express\node_modules\express\lib\router\layer.js:95:5) at C:\Workspace\Node\Express\node_modules\express\lib\router\index.js:281:22 at Function.process_params (C:\Workspace\Node\Express\node_modules\express\lib\router\index.js:335:12) at next (C:\Workspace\Node\Express\node_modules\express\lib\router\index.js:275:10) at Function.render (C:\Workspace\Node\Express\node_modules\express\lib\application.js:580:17) at ServerResponse.render (C:\Workspace\Node\Express\node_modules\express\lib\response.js:1012:7) at C:\Workspace\Node\Express\startpage.js:13:9 at Layer.handle [as handle_request] (C:\Workspace\Node\Express\node_modules\express\lib\router\layer.js:95:5) at next (C:\Workspace\Node\Express\node_modules\express\lib\router\route.js:137:13) at Route.dispatch (C:\Workspace\Node\Express\node_modules\express\lib\router\route.js:112:3) at Layer.handle [as handle_request] (C:\Workspace\Node\Express\node_modules\express\lib\router\layer.js:95:5) at C:\Workspace\Node\Express\node_modules\express\lib\router\index.js:281:22 at Function.process_params (C:\Workspace\Node\Express\node_modules\express\lib\router\index.js:335:12) at next (C:\Workspace\Node\Express\node_modules\express\lib\router\index.js:275:10)
|
Тоесть не может найти шаблон. Шиблоны лежат в папке views/layout 404.handlebars 500.handlebars about.handlebars home.handlebars main.handlebars что я делаю не так?
|