gpt4 book ai didi

javascript - ZEIT 现在无服务器函数 - 带参数的路由

转载 作者:行者123 更新时间:2023-11-28 03:11:39 25 4
gpt4 key购买 nike

我创建了 4 个无服务器路由

  • /api/list (GET)
  • /api/add (POST)
  • /api/update/:id (PUT)
  • /api/remove/:id(删除)

我将它们包含在 api/now.json 文件中,如下所示:

{"src": "/api/list", "dest": "./list.js", "methods": ["GET"]},
{"src": "/api/add", "dest": "./add.js", "methods": ["POST"]},
{"src": "/api/update/*", "dest": "./update.js", "methods": ["PUT"]},
{"src": "/api/remove/*", "dest": "./remove.js", "methods": ["DELETE"]}

不使用参数的/api/list 和/api/add 路由正在工作,但/api/update 和/api/remove 不起作用,因为我可能没有在 api 上使用正则表达式上面引用的 now.json 文件中的路径正确。

路由器的处理程序如下所示(仅相关路径)

app.put('/api/update/:id', (req, res) => {
...
});
module.exports = app;

最佳答案

src 是您要匹配的传入请求路径,dest 是应执行的文件。

这意味着前两个不需要任何路由,因为访问 /api/list 将执行文件 /api/list.js 中的函数,并且/api/add 将执行 /api/add.js

您可以使用rewritesnow.json 文件中定义类似于快速模式的路由:

{
"rewrites": [
{ "source": "/update/:id", "destination": "/api/update" },
{ "source": "/remove/:id", "destination": "/api/remove" }
]
}

/api/remove.js 中的示例函数如下所示:

module.exports = (req, res) => {
const { id } = req.query;
res.send('Removing ID ' + id);
});

或者,您可以将文件命名为 /api/remove/[id].js,然后就根本不需要定义 rewrites 配置。这称为Path Segments

关于javascript - ZEIT 现在无服务器函数 - 带参数的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60045688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com