渲染车把页面Node.js

时间:2018-04-15 13:11:41

标签: javascript node.js handlebars.js

我正在尝试渲染一个把手页面,我收到了404错误,我不知道为什么。它几乎就像它不能识别把手文件一样。我的文件层次结构如下所示: enter image description here

我正在调用当前页面的这一部分的路径:

<p><a href="http://18.219.103.143:3000/admin-dashboard">Admin Login</a></p>

在主js文件中,我使用以下代码处理admin-dashboard

app.get('/admin-dashboard', function(req,res){
  var context = {};
  res.render('adminDash', context);
});

adminDash.handlebars仅包含:

<h1>Admin Page</h1>

查看引擎:

app.engine('handlebars', handlebars.engine);
app.set('view engine', 'handlebars');
app.set('port', 3000);
app.use(express.static('public'));

我在app.get函数中尝试了console.log和/或alert进行调试,但没有打印到控制台。可能是我打电话给render()的方式吗?当我无法打印语句时,不确定如何调试。有什么看似明显不合适吗?

2 个答案:

答案 0 :(得分:0)

您使用什么视图引擎以及如何设置它?如果您使用默认hbs,则后缀为.hbs

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'hbs');

答案 1 :(得分:0)

  1. 安装车把:npm i express-handlebars

  2. 添加代码:

const exphbs = require('express-handlebars');

const hbs = exphbs.create({
    defaultLayout: 'main',
    extname: 'hbs',
    runtimeOptions: {
        allowProtoPropertiesByDefault: true,
        allowProtoMethodsByDefault: true,
    }
});
app.engine('hbs', hbs.engine);
app.set('view engine', 'hbs');
app.set('views', 'views');