1

I'm trying to add multiple query string values at the current url but i'm not understanding how to do it.

I'm using express and Nodejs.

I've created a route that can read the values

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');
        }
    });
});

and in the home page i've set some links that add query values

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

but each time that i click one of them the url resets the query string and add the query value of the cicked link.

So how can i concatenate them?

2 Answers 2

1

I have some confused with your question.

If you want your link will be /?Value1=1&value2=2&value3=3, you can use :

//script.js

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

I hope it can help you !

Sign up to request clarification or add additional context in comments.

Comments

1

Firstly, you have to store all query string inside a variable to use them later and secondly, you need to parse current query, concatenate it with the previously stored ones and regenerate final query.

Here is an example:

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');
        }
    });
});

Note: Don't forget to install querystring module.

npm i querystring

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.