Как добавить несколько значений запроса в URL - PullRequest
1 голос
/ 01 июля 2019

Я пытаюсь добавить несколько значений строки запроса на текущий URL, но я не понимаю, как это сделать.

Я использую express и Nodejs.

Я создал маршрут, который может читать значения

router.get('/posts', (req, res) => {

    Post.find({}).populate('files').exec((err, posts) => {
        if(err){
            res.redirect('/');
            console.log(err);
        } else {
            console.log(req.query)

            res.render('home');
        }
    });
});

и на домашней странице я установил несколько ссылок, которые добавляют значения запроса

<a href="?Value1=1">Value1</a>
<a href="?Value2=2">Value2</a>
<a href="?Value3=3">Value3</a>

но каждый раз, когда я щелкаю по одному из них, URL сбрасывает строку запроса и добавляет значение запроса для ссылки со взломом.

Так как я могу объединить их?

Ответы [ 2 ]

1 голос
/ 02 июля 2019

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

Вотпример:

const qs = require('querystring')
let queries = {}
router.get('/posts', (req, res) => {

    Post.find({}).populate('files').exec((err, posts) => {
        if(err){
            res.redirect('/');
            console.log(err);
        } else {
            queries = Object.assign({}, queries, req.query)
            // this line will log concatenated query
            console.log(qs.stringify(queries))
            res.render('home');
        }
    });
});

Примечание: Не забудьте установить модуль строки запроса.

npm i querystring
0 голосов
/ 01 июля 2019

Я запутался с вашим вопросом.

Если вы хотите, чтобы ваша ссылка была /?Value1=1&value2=2&value3=3, вы можете использовать:

//script.js

let oldUrl = window.localtion;
let newUrl = oldUrl + '&value2` //and the same with value3
$('yourElement').attr('href')= newUrl; //yourElement maybe id,name,...etc 

Надеюсь, это поможет вам!

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