node.js - 多个路由文件不是指向绝对路径,而是在现有路径的最后追加新路径,因此无法完成 GET 请求
问题描述
我有两条路线,当我尝试从这些路线交替访问文件时,它最终会给出错误(不能GET /user/user/viewUser
)。
情况如下:
app.js 文件
var home = require('./routes/index');
app.use('/', home);
var user = require('./routes/userRoutes');
app.use('/user', user);
因此,如果我在/user/createNewUser
访问此页面时调用路径,但是当我尝试使用 访问另一个路径时/user
,我会收到一个错误,Cannot GET /user/user/viewUser
因为系统在最后而不是从绝对路径开始附加新路径。
解决方案
您在锚标记中使用相对路径。尝试使用绝对路径:
<a class="headerBtn dropdown-item" href="/user/viewCreateUser">Create User</a>
<a class="headerBtn dropdown-item" href="/user/viewUser">View Users</a>
或者
<a class="headerBtn dropdown-item" href="YOUR_DOMAIN_URL/user/viewUser">View Users</a>
更新
您可以使用 javascript 来选择您的锚标记并为它们提供动态 href 属性。例如:
const DOMAIN_URL = 'YOUR_URL';
document.querySelector('a').addEventListener('click', (e) => {
e.target.href = `${DOMAIN_URL}/user/viewUser`;
});
现在这将更改href
它找到的第一个锚标记,因此您应该查询所需的标记并为其分配动态href
值。
推荐阅读
- c# - 如何在使用 Selenium WebDriver 和 NUnit C# 并行运行测试后关闭多个浏览器窗口
- c# - 索引附加到某些页面的内容
- xml - XPath 根据值获取子节点
- socket.io - Socketio:如何将单个字符串发送到客户端
- javafx - JavaFX 许多任务在 GUI 中工作
- azure-language-understanding - LUIS,改变文化,也改变一些功能
- angular - Highcharts / Highmaps with Angular - 无法运行演示
- java - Netty 请求超时
- javascript - Javascript - 获取数组中最大数组总和的最佳方法
- javascript - Firefox 控制台显示错误消息,安装 PHP7 后出现 Javascript 错误