首页 > 解决方案 > 多个路由文件不是指向绝对路径,而是在现有路径的最后追加新路径,因此无法完成 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因为系统在最后而不是从绝对路径开始附加新路径。

标签: node.jsexpress

解决方案


您在锚标记中使用相对路径。尝试使用绝对路径:

<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值。


推荐阅读