无法使用Express.js获取Index.js



我正在参加Linkedin课程,学习如何使用express.js构建网站我试图让我的index.ejs页面进行渲染,但是服务器一直在渲染我的index.html页面。

我已经查看了其他溢出文章,但它只显示了切换params(req,res)、put("index")和组合app.get语句。

这是我的server.js代码

const { response } = require('express');
const express = require('express');
const path = require('path');
const app = express();
const port = 3000;
app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, './views'));
app.use(express.static(path.join(__dirname, './static')));
app.get('/', (req, res) => {
response.render('index', { pageTitle: 'Welcome' });
});
app.get('/speakers', (req, res) => {
response.sendFile(path.join(__dirname, './static/speakers.html'));
});
app.listen(port, () => {
console.log(`Example app listening on port ${port}`);
});

如果我删除我的index.html文件,我会得到这个错误消息

TypeError: Cannot read properties of undefined (reading 'app')
at ServerResponse.render (D:building-website-nodejs-expressnode_modulesexpresslibresponse.js:1017:22)
at D:building-website-nodejs-expressserver.js:24:12
at Layer.handle [as handle_request] (D:building-website-nodejs-expressnode_modulesexpresslibrouterlayer.js:95:5)
at next (D:building-website-nodejs-expressnode_modulesexpresslibrouterroute.js:144:13)
at Route.dispatch (D:building-website-nodejs-expressnode_modulesexpresslibrouterroute.js:114:3)
at Layer.handle [as handle_request] (D:building-website-nodejs-expressnode_modulesexpresslibrouterlayer.js:95:5)
at D:building-website-nodejs-expressnode_modulesexpresslibrouterindex.js:284:15
at Function.process_params (D:building-website-nodejs-expressnode_modulesexpresslibrouterindex.js:346:12)
at next (D:building-website-nodejs-expressnode_modulesexpresslibrouterindex.js:280:10)
at SendStream.error (D:building-website-nodejs-expressnode_modulesserve-staticindex.js:121:7)

这是我的文件夹结构VS代码文件夹和Server.js 的图片

这是解决我问题的代码

const express = require('express');
const path = require('path');
const app = express();
const port = 3000;
app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, './views'));
app.use(express.static(path.join(__dirname, './static')));
app.get('/', (request, response) => {
response.render('index', { pageTitle: 'Welcome' });
});
app.get('/speakers', (request, response) => {
response.sendFile(path.join(__dirname, './static/speakers.html'));
});
app.listen(port, () => {
console.log(`Express server listening on port ${port}!`);
});

请确保您的文件路径是正确的,通常应该是这样。

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

请确保你的index.ejs在视图文件夹中。将";响应";至";res";由于函数中的参数it";res";。

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

这适用于您使用响应的所有时间。将其更改为res.

最新更新