我创建了4条无服务器路由
我将它们包含在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;
答案 0 :(得分:3)
src
是您要匹配的传入请求路径,而dest
是应执行的文件。
这意味着您不需要前两个路由,因为访问/api/list
将执行文件/api/list.js
中的功能,而/api/add
将执行/api/add.js
。 / p>
您可以在now.json
文件中使用rewrites来定义类似于表达模式的路由:
{
"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。