javascript - router.get('/page') express 路由器不工作
问题描述
我正在尝试制作一个简单的快速路由,并且我正在使用 vanilla HTML 作为前端。
index.js
const express = require('express'),
bodyParser = require('body-parser'),
serverless = require('serverless-http'),
app = express(),
nav = require('./routes/nav'), // the router
PORT = process.env.PORT || 8080;
/* Settings */
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static('./public'));
/* APIS */
app.use('/.netlify/functions/api', nav); //Navigation API
module.exports = app;
module.exports.handler = serverless(app);
if(process.env.NODE_ENV === "development"){
app.listen(PORT, () => {
console.log(`Server is runing on PORT: ${PORT} ENV: ${process.env.NODE_ENV}`);
});
}
导航.js
const express = require('express');
const router = express.Router();
const PATH = "../../public/";
router.get('/', (req, res) => {
res.render(`${PATH}index.html`)
});
router.get('/graph', (req, res) => {
res.render(`${PATH}pages/graph.html`)
})
module.exports = router;
每次我尝试使用标签进行路由时,它都会告诉我“无法获取 /graph”
我的 HTML 导航
<ul class="navbar-nav mr-auto">
<li class="nav-item"><a class="nav-link" href="/">Home</a></li>
<li class="nav-item mr-auto"><a class="nav-link" href="/graph">Graph Algorithims</a></li>
<li class="nav-item"><a class="nav-link" href="/sort">Sorting Algorithims</a></li>
</ul>
我认为问题可能出在本地服务器上,我尝试部署到 netlify 以查看它是否在那里工作并出现同样的问题。
解决方案
阅读您的代码,我似乎看不到您将 router.js 文件“连接”到 index.js 的位置。
要解决此问题,请在 index.js 中添加以下内容:
const router = require('path/to/router.js');
app.use(router);
推荐阅读
- python - Azure 事件中心 python 中 SAS 令牌的连接字符串
- javascript - 如何在反应类中使用反应钩子?
- mips - 如果目标地址 j 跳转到的是立即数,会发生什么?
- wordpress - WordPress禁用产品列表上的悬停动画
- javascript - 如何更改数组中特定元素的颜色
- ag-grid - Aggrid 添加按钮应用和重置到所有过滤器工具面板
- ruby-on-rails - 红色 Rails 屏幕而不是闪烁消息:RailsAdmin::MainController#dashboard 中的 CanCan::AccessDenied
- node.js - 我对nodejs有问题我不接受数据,错误是无法读取未定义的属性“总计”
- c++ - MinGW:构建 C++ 程序时出现内部错误
- python-3.x - 如何在 Windows 上将 miniupnpc 安装为 python 模块