首页 > 解决方案 > 渲染 ejs 不再需要 path.join(__dirname, 'views') 吗?

问题描述

我在遵循教程时进行了一些测试,并注意到它们不包括:

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

这是否不需要渲染 ejs 文件,或者我在以前的项目中使用错误。

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

在那里,它仍然呈现 ejs。我不太明白这是怎么回事,也无法在网上找到任何东西。

请注意,我在视图文件夹中有一个名为 index.ejs 的简单 Hello World 文件。这是我的简单代码

const express = require('express');
const session = require('express-session');
const cookieParser = require('cookie-parser');
const flash = require('connect-flash');

const app = express();

const port = process.env.PORT || 4000;

app.use(express.urlencoded({extended: true}));
app.use(express.json());

app.use(cookieParser('SecretStringForCookies'));
app.use(session({
  secret: 'SecretStringForSession',
  cookie: {maxAge: 60000},
  resave: true,
  saveUninitialized: true
}));
app.use(flash());

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

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

app.post('/', (req,res) => {
  res.redirect('/');
});

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

标签: node.jsexpressejs

解决方案


Daniel 如果您使用views 目录作为根目录,则无需在app.js 中提及,但如果您当时使用partials 和其他目录,则必须在app.js 中使用路径提及这些目录。


推荐阅读