首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >表示指定路由的默认行为

表示指定路由的默认行为
EN

Stack Overflow用户
提问于 2022-03-03 16:26:42
回答 1查看 27关注 0票数 1

我正在创建一个应用与快递,下一步和ace (亚特兰-连接-快车)。

Express + next要求我使用这样的路线:

代码语言:javascript
运行
复制
app.all('*', (req, res) => {
  return handle(req, res)
})

但我需要亚特兰西岛连接的特殊行为。在ace示例中,这样做如下:

代码语言:javascript
运行
复制
app.get('/', (_, res) => {
  res.redirect('/atlassian-connect.json');
})

问题是,第一条路线仍将用于/亚特兰-Connect.json,所以我也必须重写它。

但是,如果我像这样手动尝试,就会遇到以下问题:

代码语言:javascript
运行
复制
app.get('/atlassian-connect.json', (_, res) => {
  let content = fs.readFileSync(path.resolve('atlassian-connect.json'));
  let json = JSON.parse(content);
  res.send(json)
})

json包含这样的部分:

代码语言:javascript
运行
复制
"baseUrl": "{{localBaseUrl}}"

而且,如果我没有/atatassian-connect.json的手动路径,localBaseUrl就会自动填写。当我使用我的路线时,它不会被填满。我怎么填呢?

EN

回答 1

Stack Overflow用户

发布于 2022-03-03 17:51:56

我发现,发送填好的json不是来自express的默认内容,而是ace模块所做的事情。

因此,我发现的方法是手动定义所有路径,如下所示:

代码语言:javascript
运行
复制
app.get('/', (_, res) => {
  res.redirect('/atlassian-connect.json');
})

// all routes to be accessible

app.all('/app', (req, res) => {
  return handle(req, res)
})

// all compiled next route
app.all('/_next/*', (req, res) => {
  return handle(req, res)
})

我试着用regex来匹配除亚特兰西安-Connect.json以外的所有线路,并想出了这样的结果:^(?!atlassian-connect.json$).*$,但它似乎不起作用。所以我想最简单的方法就是手动声明所有的路线。

编辑:

我想出了如何让regex开始工作(愚蠢的我不读文档)

固定路由:

代码语言:javascript
运行
复制
// ace configuration
app.get('/', (_, res) => {
  res.redirect('/atlassian-connect.json');
})

// all routes except /atlassian-connect.json
app.all(/^(?!\/atlassian-connect.json$).*$/, (req, res) => {
  return handle(req, res)
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71340481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档