【发布时间】:2017-02-20 18:21:53
【问题描述】:
我目前正在使用 Express 开发 URL 缩短应用程序。 我希望用户能够输入这样的 URL:
https://www.exampleurlshortener.com/new/https://www.google.com
问题是每当我尝试使用 Express 指定参数时,它只会提取“https:”部分,之后的所有内容都会丢失,因为 2 个反斜杠正在注册为新路由:
app.get('/new/:url', (req, res) => {
console.log(req.params.url) // outputs 'https:'
我曾考虑将每个部分指定为新参数,但如果 inner 为空白,则最终会引发 404。我需要使用此方法检查内部是否为空白,否则用户将能够键入 https:/something/www.google.com
app.get('/new/:prot/:inner/:address', (req, res) => {
// throws 404 on valid addresses
有没有一种简单的方法可以解决我所缺少的这个问题?是否可以在请求中的某处检查完整的 URL?或者参数可以忽略反斜杠吗?
【问题讨论】:
-
尝试使用
req.url,或者通过查询字符串传递参数(我会推荐第二种方法,它对你的API的客户来说也更简单)