How to get GET (query string) variables in Express.js on Node.js?

前端 未结 26 3482
庸人自扰
庸人自扰 2020-11-21 23:53

Can we get the variables in the query string in Node.js just like we get them in $_GET in PHP?

I know that in Node.js we can get the URL in the request.

相关标签:
26条回答
  • 2020-11-22 00:12
    //get query&params in express
    
    //etc. example.com/user/000000?sex=female
    
    app.get('/user/:id', function(req, res) {
    
      const query = req.query;// query = {sex:"female"}
    
      const params = req.params; //params = {id:"000000"}
    
    })
    
    0 讨论(0)
  • 2020-11-22 00:13

    There are 2 ways to pass parameters via GET method

    Method 1 : The MVC approach where you pass the parameters like /routename/:paramname
    In this case you can use req.params.paramname to get the parameter value For Example refer below code where I am expecting Id as a param
    link could be like : http://myhost.com/items/23

    var express = require('express');
    var app = express();
    app.get("items/:id", function(req, res) {
        var id = req.params.id;
        //further operations to perform
    });
    app.listen(3000);
    

    Method 2 : General Approach : Passing variables as query string using '?' operator
    For Example refer below code where I am expecting Id as a query parameter
    link could be like : http://myhost.com/items?id=23

    var express = require('express');
    var app = express();
    app.get("/items", function(req, res) {
        var id = req.query.id;
        //further operations to perform
    });
    app.listen(3000);
    
    0 讨论(0)
  • 2020-11-22 00:13

    In express.js you can get it pretty easy, all you need to do in your controller function is:

    app.get('/', (req, res, next) => {
       const {id} = req.query;
       // rest of your code here...
    })
    

    And that's all, assuming you are using es6 syntax.

    PD. {id} stands for Object destructuring, a new es6 feature.

    0 讨论(0)
  • 2020-11-22 00:13
    app.get('/user/:id', function(req, res) {
        res.send('user' + req.params.id);    
    });
    

    You can use this or you can try body-parser for parsing special element from the request parameters.

    0 讨论(0)
  • 2020-11-22 00:14

    From my point of view I think that many people mix two different concepts. During the REST development I was familiar with passing information in the URL with two ways "path variables" and "request parameters"(query parameters). The RFC describes the parts of URI like this: enter link description here So I understood that author would like to know how to pass request parameters. I would only want to make the topic easier to understand, but the solution was mentioned here many times.

    You can get query parameters from the URI with request.query.<name of the parameter>, the second mentioned solution was request.params.<name of the parameter> and with this you can get the path variables.

    0 讨论(0)
  • 2020-11-22 00:15
    var express = require('express');
    var app = express();
    
    app.get('/', function(req, res){
      res.send('id: ' + req.query.id);
    });
    
    app.listen(3000);
    
    0 讨论(0)
提交回复
热议问题