带有html和hbs视图引擎的express.js中的路由问题

发布时间:2020-07-07 16:36
  router.get('/dist/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

我的app.js路由代码

app.set('dist', path.join(__dirname, 'dist'));
app.set('view engine', 'html');
app.engine('html', require('hbs').__express);

我的文件夹结构

root/dist/index.html

我无法在第一页上打开此页面

如何打开此页面?我的错误在哪里?

感谢您的帮助

回答1

您可以使用方法set()重新定义Express的默认设置。

app.set('views', path.join(__dirname, '/dist'));

工作示例

const express = require('express')
const path = require('path')
const app = express()
const port = 3000;

var indexRouter = require('./routes/index');
// Set 'views' directory for any views 
// being rendered res.render()
app.set('views', path.join(__dirname, '/dist'));

// Set view engine
app.engine('html', require('hbs').__express);
app.set('view engine', 'html');

app.use('/', indexRouter);

app.listen(port, () => console.log(`Example app listening at http://localhost:${port}`))

routes / index.js

var express = require('express');
var router = express.Router();

router.get('/dist/', function(req, res, next) {
  res.render('index', { title: 'Inside Dist Folder Index' });
});

module.exports = router;