Skip to content Skip to sidebar Skip to footer

Express Js Unlimited Query Parameter Function?

I'm trying to set an unlimited query parameter in express js.But I couldn't figure out how should I implement that in my code. I'm using MongoDB aggeration I want to build unlimite

Solution 1:

Why don’t you use forEach or something

functionendPoint (req, res) {
const queriesFound ={}

req.query.forEach(query=>{

queriesFound[query]=query;
}

QueriesFound will be an object

{ “Name”:”Name”, “AnotherParam”:”AnotherParam” }

}

//QueriesFound will be an object

{ “Name”:”Name”, “AnotherParam”:”AnotherParam” }

Solution 2:

Your request URL has a wrong structure for query parameters. If you want to pass multiple kay/value pairs in URL, the correct structure is like this:

  • 'http://localhost:4000/search?text=mango&brand=rasana&color=yellow

This code should work with this URL structure:

app.get("/search", async(request, response) => {
    try {
        //We need "search pipeline stage" in all conditions. whether we got a key/value pair in query or not. //so we use "search stage" when declare pipeline array;let pipeline = [{
            '$search': {
                'text': {
                    'query': `${request.query.text}`,
                    'path': 'title',
                }
            }
        }];
        //If there are keys/values pairs in the query parameters, we add match stage to our pipeline array;if(request.query) {
            let match = {}, hasMatchSatge = false;
            for(let item in request.query){
                if(item !=== 'text'){
                   match[item] = request.query[item];
                   hasMatchStage = true;
                }
            }
            if(hasMatchStage) pipeline.push({'$match': match});
        }
        //Finally, we add our "limit stage" to the pipeline array;
        pipeline.push({'$limit' : 5});
        let result = collection.aggregate(pipeline).toArray();
        response.status(200).send(result);
    } catch (error) {
        response.status(500).send({ message: error.message });
    }

})

Post a Comment for "Express Js Unlimited Query Parameter Function?"