我目前正在使用Express开发一个URL缩短应用程序。 我希望用户能够输入这样的URL:
function setup() {
var cnv = createCanvas(500, 100);
cnv.id("hello");
cnv.position(0,0);
}
function draw() {
}
问题是每当我尝试使用Express指定参数时,它只会提取'https:'部分,之后的所有内容都会丢失,因为2个反斜杠正在注册为新路径:
https://www.exampleurlshortener.com/new/https://www.google.com
我考虑将每个部分指定为新参数,但如果app.get('/new/:url', (req, res) => {
console.log(req.params.url) // outputs 'https:'
为空,则最终会抛出404.我需要使用此方法检查内部是否为空,否则用户将能够键入{ {1}}
inner
有一种简单的方法可以解决这个问题吗?是否可以在请求中的某处检查完整URL?或者参数可以忽略反斜杠吗?
答案 0 :(得分:4)
您可以将an expression用于您的网址占位符:
app.get('/new/:url(.*)', (req, res) => {
console.log(req.params.url) // will output 'https://www.google.com'