Нужно взять с url, то что написал в input

Проблема в том, что req.params.title это "search", а нужно то, что написал в input

form в pug:

form.header__block-search-content(action="/search" method="GET")
     span.header-search-word Поиск
     input.header-search.header-search-show(type="text" name="text")

ее обработка:

router.get('/:title', async(req, res) => {
    const title = req.params.title;

    const products = await Product.find({ title })
        .select('nowPrice oldPrice sale sizes img mainSize description sex article accessories');

    res.render('shop', {
        title: `Ryc-store ${title}`,
        products: products,
        isShop: true
    });
})

Ответы (2 шт):

Автор решения: Serj1c

то что в input можно достать через onChange и event.target.value примерно таким образом (пример из синтаксиса react, но и на vanilla js можно переложить):

<Input
 type='email'
 placeholder='Введите email'
 id='email'
 value={props.email}
 onChange={(e) => props.onChange(e.target.value)}
/>

ответ достоин, разве что, комментария, но у меня кармы не хватает

→ Ссылка
Автор решения: nörbörnën
const express = require('express');
const app = express();

app.post('/search', (req, res) => {
    const { text } = req.query;
    console.log(`[search] ${text}`);
    res.json({ok: true});
});

app.get('/search/:title', (req, res) => {
    const { title } = req.params;
    console.log(`[search] ${title}`);
    res.json({ok: true});
});

app.listen(3003, 'localhost');

Первый роут правильно обработает вашу форму, а вот для того, чтобы сработал роут с именованным параметром, нужно сделать такой запрос:

curl 'http://localhost:3003/search/карамба'

→ Ссылка