gpt4 book ai didi

javascript - 如何设置关于路由器的快速模块?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:23:40 27 4
gpt4 key购买 nike

目录

/config
-routes.js
/public
/views
-index.pug
/home
-home.pug
-app.js

应用程序.js

const express = require('express'),
app = express();

app.use(express.static(path.join(__dirname, 'public')));
app.set('views', path.join(__dirname, 'public/views')));
app.set('view engine', 'pug');

require(__dirname + '/config/routes.js')(app);

app.listen(port);

路由.js

module.exports = function (app) {
const express = require('express'),
router = express.Router(),
dir = app.get('views');

app.use('/', router);

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

router.get('/home', (req, res) => {
res.render('/home/home');
});
};

当我尝试访问 localhost:port/home 时浏览器返回错误消息

错误:无法在 View 目录“C:\app\public\views”中查找 View “/home/home”

下一段代码可以访问url。

router.get('/home', (req, res) => {
res.render(dir + '/home/home');
});

如何设置我的 express ?我不想使用 dir 变量,我只想使用/home/home。

最佳答案

问题出在下面的代码上

router.get('/home', (req, res) => {
res.render(dir + '/home/home');
});

您不必在 res.render(); 中指定 dir 并且开头的 / 正斜杠应该是删除。由于您已经告诉 Expressjs 在 views 文件夹中查找 View 文件 app.set('views', path.join(__dirname, 'public/views'))); 将其更改为 res.render('home/home'); 现在它应该可以工作了。

关于javascript - 如何设置关于路由器的快速模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48373886/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com