Экспресс хбс не работает

Я знаю, что этот пост - своего рода дубликат, но я не могу понять, где я ошибаюсь.

/// my app.js //

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


app.use(express.static('public'));
app.use(express.static('views'));
//
app.engine('html', require('hbs').__express);
app.set('views', 'views');
app.set('view engine', 'html');


app.get('/', function(req, res) {
    // res.sendFile(path.join(__dirname + '/index.html'));
    //res.sendFile('/index.html');
    res.render('index',{title :"page index"});

  });

app.listen(3000);
Здесь мой./views/index.html

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Index</title>
 
</head>
<body>
 <h1>{{title}}</h1>

</body>
</html>

Любая помощь? Спасибо!

2 ответа

Решение

Вы должны использовать.hbs в качестве расширения.

Попробуй переименовать свой /views/index.html в /views/index.hbs

и измените его в коде следующим образом

app.set('view engine', 'hbs');

Очевидно, hbs хочет использовать.hbs.

Совет: hbs hbs не выглядит так хорошо для меня, вы можете взглянуть на swig: http://paularmstrong.github.io/swig/docs

Попробуйте код ниже

app.set ('view engine', 'html');
app.engine ('html', require ('hbs').__ express);

Вместо этого

app.engine ('html', require ('hbs').__ express);
app.set ('views', 'views');
app.set ('view engine', 'html');

Другие вопросы по тегам