【问题标题】:Regex for express get file path用于快速获取文件路径的正则表达式
【发布时间】:2025-12-13 08:05:02
【问题描述】:

因为我使用的是 react 路由器,所以我无法使用 Node.js 中的 react 对每条路由进行特定的文件路径引用。为了让它们在获取特定文件路径时不会崩溃,我必须将此代码放在节点中。

app.use(express.static(path.join(__dirname, '/frontend-two')));

app.get('*', function(req,res) {
res.sendFile(path.join(__dirname, './frontend-two/index.html'));
});

但是,我确实想放置一个特定的文件路径,以便将 json 数据发送回客户端。它会干扰 app.get('*') 除非我能找出一个正则表达式来排除特定的 '/users'。

有没有人知道一个可能的正则表达式来完成这个?我通过其他问题尝试了一些想法,但无法弄清楚。

【问题讨论】:

  • 在通配符之前设置你的特定文件路径,这样它就会被首先捕获。

标签: javascript node.js regex reactjs


【解决方案1】:

您可以通过两种方式做到这一点:

您可以添加 /users 路径,然后添加 * 路径:

app.get('/get', function (req, res) {
    // ...
});

app.get('*', function (req, res) {
    // ...
});

将使用第一个匹配的路径,因此 * 路径将与 /users 不匹配,因为它是第二个。

或者您可以使用这样的正则表达式:/^(?!\/users)$/ 匹配所有内容,但不匹配用户。您可以通过多种方式编写正则表达式 - 搜索否定的前瞻和后瞻断言。

【讨论】:

  • 我没有想过在通配符路径之前设置具体路径。非常感谢您的回复。