Node.js - 提取部分 URL



在我的节点.js服务器中,我有一个URL变量。

它要么是"https://www"的形式。URL.com/USEFUL_PART/blabla"或"URL.com/USEFUL_PART/blabla"。

由此,我只想提取"USEFUL_PART"信息。

我如何使用Javascript做到这一点?

我知道有两种方法可以做到这一点,一种使用香草 js,另一种使用正则表达式。 我在网上搜索了,但我只找到了特定问题的SO解决方案。不幸的是,我找不到可以复制或制定解决方案的通用教程。

由于您使用的是 Express,因此您可以指定所需的 URL 部分作为参数,如下所示:

app.get('/:id/blabla', (req, res, next) => {
console.log(req.params); // Will be { id: 'some ID from the URL']
});

另请参阅:https://expressjs.com/en/api.html#req.params

嘿,如果你正在使用 express,那么你可以做这样的事情

app.get('/users/:id/blabla',function(req, res, next){
console.log(req.params.id);
}

另一种方法是使用javascript替换和拆分功能

str = str.replace("https://www.URL.com/", "");
str = str.split('/')[0];

在 Node 中.js您可以使用"URL">
https://nodejs.org/docs/latest/api/url.html

const myURL = new URL('https://example.org/abc/xyz?123');
console.log(myURL.pathname);
// Prints /abc/xyz

一种方法是检查 url 是否以http or https开头,如果没有,则手动添加http,使用 URL API 解析 url,从解析的 url 中获取 patname,并获取所需的部分

let urlExtractor = (url) =>{
if(!/^https?:///i.test(url)){
url = "http://" + url
}
let parsed = new URL(url)
return parsed.pathname.split('/')[1]
}
console.log(urlExtractor("https://www.URL.com/USEFUL_PART/blabla"))
console.log(urlExtractor("URL.com/USEFUL_PART/blabla"))

最新更新