如何批量create/efficiently做成几千个express js路由?
How to mass create/efficiently make thousands of express js routes?
我如何批量创建路线或使用 express 高效地制作数千条路线?
我想要具有以下格式的路由 -
localhost:3000/${在此处插入地址}
我是做一个 for 循环还是有一些 express 内置的功能?例如,yelp 有“https://www.yelp.com/biz/mcdonalds-san-jose-19”。我似乎找不到任何关于此的资源。
不要创建成千上万的路由。
使用路由参数很容易做到这一点:
app.get("/:address", (req, res) => {
res.send(req.params.address); // req.params.address is the address in the route
})
来自express docs:
Route parameters are named URL segments that are used to capture the values specified at their position in the URL.
[...]
To define routes with route parameters, simply specify the route parameters in the path of the route as shown below.
app.get('/users/:userId/books/:bookId', function (req, res) {
res.send(req.params)
})
The name of route parameters must be made up of “word characters” ([A-Za-z0-9_]
).
To have more control over the exact string that can be matched by a route parameter, you can append a regular expression in parentheses, e.g. '/user/:userId(\d+)'
.
对于所有具有类似形式的数千条路线,例如您的示例:
https://www.yelp.com/biz/mcdonalds-san-jose-19
您创建一个带有参数的路由,然后该路由处理程序查找该参数(在数据库中或在您的代码中查找 table)以获取指向该标记的适当内容的指针.
您可以使用如下参数实现这样的路由:
app.get("/biz/:location", (req, res) => {
const location = req.params.location;
// now get the appropriate content for that location using some
// form of lookup and send the response
});
然后,您就有了一条服务于无数个可能位置的路线,无需注册无数条不同的路线,每个位置一个。
如果您不熟悉 Express 路由中的 URL 参数,:location
是一些适合那里模式的字符串的占位符以及匹配此模式的 URL模式将匹配此路由,路由处理程序可以在 req.params.location
处访问该参数,其中 location
属性 名称来自 URL 模式中使用的名称。 Express 文档 here.
中解释了更多详细信息
我如何批量创建路线或使用 express 高效地制作数千条路线?
我想要具有以下格式的路由 - localhost:3000/${在此处插入地址}
我是做一个 for 循环还是有一些 express 内置的功能?例如,yelp 有“https://www.yelp.com/biz/mcdonalds-san-jose-19”。我似乎找不到任何关于此的资源。
不要创建成千上万的路由。 使用路由参数很容易做到这一点:
app.get("/:address", (req, res) => {
res.send(req.params.address); // req.params.address is the address in the route
})
来自express docs:
Route parameters are named URL segments that are used to capture the values specified at their position in the URL. [...] To define routes with route parameters, simply specify the route parameters in the path of the route as shown below.
app.get('/users/:userId/books/:bookId', function (req, res) {
res.send(req.params)
})
The name of route parameters must be made up of “word characters” (
[A-Za-z0-9_]
). To have more control over the exact string that can be matched by a route parameter, you can append a regular expression in parentheses, e.g.'/user/:userId(\d+)'
.
对于所有具有类似形式的数千条路线,例如您的示例:
https://www.yelp.com/biz/mcdonalds-san-jose-19
您创建一个带有参数的路由,然后该路由处理程序查找该参数(在数据库中或在您的代码中查找 table)以获取指向该标记的适当内容的指针.
您可以使用如下参数实现这样的路由:
app.get("/biz/:location", (req, res) => {
const location = req.params.location;
// now get the appropriate content for that location using some
// form of lookup and send the response
});
然后,您就有了一条服务于无数个可能位置的路线,无需注册无数条不同的路线,每个位置一个。
如果您不熟悉 Express 路由中的 URL 参数,:location
是一些适合那里模式的字符串的占位符以及匹配此模式的 URL模式将匹配此路由,路由处理程序可以在 req.params.location
处访问该参数,其中 location
属性 名称来自 URL 模式中使用的名称。 Express 文档 here.