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 中用路径提及这些目录。
我在按照教程进行测试时发现它们不包括:
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 中用路径提及这些目录。