首页 > 解决方案 > Express.js 不渲染把手,但显示一个空白页面

问题描述

我是 nodejs 和 express 框架的新手。我正在尝试创建一个用于测试目的的登录界面,并且我正在使用一个名为handlebars但我无法让 nodejs 渲染把手的渲染引擎,而是它只显示一个空页面,这意味着它没有渲染任何东西。

我只是重读了大约 5 次代码,但我找不到问题所在。请帮我看看我看不到的东西。

注意:我安装了express,并且express-handlebars

app.js 代码:

//Requiring Modules:

const express = require('express');
const app = express();
const port = 3000; //Port where server will be located
const handlebars = require('express-handlebars');

//Code

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

app.engine('handlebars', handlebars({
    layoutsDir: `${__dirname}/views/layouts`
}));

app.use(express.static('public'));

app.get('/', (req, res)=> {
    res.render('main', {layout: 'index'});
});

app.listen(port, ()=>{
    console.log(`Server on port: ${port}`);
});

项目文件夹包含三个主要文件夹三个文件

index.handlebars 代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    {{{body}}}
</body>
</html>

main.handlebars 代码

<h1>This is a test</h1>

抱歉,如果我遗漏了一些非常明显的东西,但我真的看不到它。

注意:正如下面的用户所说,我尝试更改 index.handlebars 内容以查看文件是否呈现。问题是,index.handlebars 无法识别 main.handlebars

index.handlebars 渲染

标签: javascriptnode.jsexpress-handlebars

解决方案


推荐阅读