path.join(__dirname, 'views') 不再需要渲染 ejs 了吗?

Is path.join(__dirname, 'views') no longer needed for rendering ejs?

我在按照教程进行测试时发现它们不包括:

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}`);
});

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