Node.js экспресс получить все после / - PullRequest
1 голос
/ 11 июля 2019

По сути, я пытаюсь сократить URL.Таким образом, вы вводите URL, и вы получаете сокращенную версию.Так что я делаю example.com/generate/InsertUrlHere.Однако, если я сделаю что-то вроде example.com/generate/InsertUrl/Here, это не сработает.

В настоящее время у меня есть

app.get('/generate/:string', async (req, res) => {
    res.send(req.params.string)  
})

Теперь я знаю, что приведенный выше код принимает только 1 ввод, но в URL-адресе у меня может быть что угодно от простого старого google.com до чего-то вродеgoogle.com/1/2/3/4/5/6/7.

Так есть ли другой способ сделать это, кроме

app.get('/generate/:string/:string2', async (req, res) => {
    res.send(req.params.string+'/'req.params.string2)  
})

Ответы [ 3 ]

0 голосов
/ 11 июля 2019

Вы можете использовать регулярное выражение, чтобы получить много строк, как вам нравится, например,

Route: /generate/:strings(*)
Path: /generate/string1/string2/string3/string4
Key: strings, Value: string1/string2/string3/string4

Затем вы можете использовать "/" в качестве разделителя, чтобы получить каждую строку в массиве

0 голосов
/ 11 июля 2019
app.get('/generate/:urlToShorten(*)', (req, res, next) => {
    console.log(req.originalUrl);
    console.log(req.params.urlToShorten);
  });

при звонке https://localhost:3000/generate/https://google.com

req.originalUrl: /generate/https://google.com

urlToShorten: https://google.com

0 голосов
/ 11 июля 2019

Почему бы вам не отправить закодированный URL-адрес, чтобы в нем не было вхождения /, которое вызывает проблему при обнаружении вашей конечной точки.Используйте encodeURIComponent () , чтобы закодировать его, чтобы он заменял определенные символы на escape-символы, а затем декодировать его для использования с помощью decodeURIComponent ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...