복붙노트

[NODEJS] 어떻게 Node.js를에 Express.js에서 GET GET (쿼리 문자열) 변수?

NODEJS

어떻게 Node.js를에 Express.js에서 GET GET (쿼리 문자열) 변수?

해결법


  1. 1.Express에서 이미 당신을 위해 이루어집니다 당신은 단순히위한 req.query을 사용할 수 있습니다 :

    Express에서 이미 당신을 위해 이루어집니다 당신은 단순히위한 req.query을 사용할 수 있습니다 :

    var id = req.query.id; // $_GET["id"]
    

    그렇지 않으면, NodeJS, 당신은 req.url와 [url.parse]에 내장 된 URL 모듈에 액세스 할 수 있습니다 (https://nodejs.org/api/url.html#url_url_parse_urlstring_parsequerystring_slashesdenotehost)를 수동으로 :

    var url = require('url');
    var url_parts = url.parse(request.url, true);
    var query = url_parts.query;
    

  2. 2.사용 req.query : 당신이 당신의 태그에 Express.js을 언급 한 이후, 여기에 익스프레스 고유의 대답이다. 예를 들면

    사용 req.query : 당신이 당신의 태그에 Express.js을 언급 한 이후, 여기에 익스프레스 고유의 대답이다. 예를 들면

    var express = require('express');
    var app = express();
    
    app.get('/', function(req, res){
      res.send('id: ' + req.query.id);
    });
    
    app.listen(3000);
    

  3. 3.Express에서 req.query를 사용합니다.

    Express에서 req.query를 사용합니다.

    단지 루트 매개 변수가 아닌 쿼리 문자열 매개 변수를 가져옵니다 req.params. 명시 적 또는 돛 설명서를 참조하십시오 :

    즉, 대부분의 시간, 당신은 상관없이 소스의 매개 변수의 값을 싶어했다. 이 경우, 사용 req.param ( 'foo는').

    파라미터의 값은 변수 경로 파라미터, 질의 스트링, 또는 인코딩 요청 본체 여부 리턴한다.

    사이드는 (PHP의 $ _REQUEST 유사) 요청 매개 변수의 모든 세 가지 유형의 교회법을 얻는 것을 목표로하는 경우 참고 -, 당신은 단지 매개 변수가 여기 together-- 내가 항해에 그것을 설정하는 방법은 병합 할 필요가있다. (이 익스프레스 4에서 변경 될 수 있음) 순서 문제 때문에, 경로 / 경로 매개 변수 개체 (req.params)이 배열 속성을 가지고 있다는 사실을 양지해야합니다


  4. 4.Express.js 위해 당신은 req.params하고 싶지 :

    Express.js 위해 당신은 req.params하고 싶지 :

    app.get('/user/:id', function(req, res) {
      res.send('user' + req.params.id);    
    });
    

  5. 5.나는 다른 답변에서 배운 내 사이트를 통해이 코드를 사용하기로 결정 :

    나는 다른 답변에서 배운 내 사이트를 통해이 코드를 사용하기로 결정 :

    var query = require('url').parse(req.url,true).query;
    

    그럼 그냥 호출 할 수 있습니다

    var id = query.id;
    var option = query.option;
    

    GET의 URL이 있어야 할 곳에

    /path/filename?id=123&option=456
    

  6. 6.

    //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"}
    
    })
    

  7. 7.당신이 ES6 및 Express를 사용하는 경우,이 destructuring 접근 방식을 시도 :

    당신이 ES6 및 Express를 사용하는 경우,이 destructuring 접근 방식을 시도 :

    const {id, since, fields, anotherField} = request.query;
    

    문맥:

    const express = require('express');
    const app = express();
    
    app.get('/', function(req, res){
       const {id, since, fields, anotherField} = req.query;
    });
    
    app.listen(3000);
    

    너무 destructuring과 기본 값을 사용할 수 있습니다 :

    테스트를 위해 // 샘플 요청 CONST REQ = { 질의 : { ID : '123' 필드 : 'A', 'B', 'C'] } } CONST { 신분증, 이후 = 새 Date (). toString (), 필드 = 'X', anotherField = '기본' } = req.query; CONSOLE.LOG (ID, 필드, 이후 anotherField)


  8. 8.GET 방식을 통해 매개 변수를 전달하는 2 가지 방법이 있습니다 방법 1 : paramName에 : 당신은 / routename / 같은 매개 변수를 전달하는 MVC 접근 방식 예 나는 PARAM로 아이디를 기대하고 코드 아래 참조를 들어이 경우 매개 변수 값을 얻을 수 req.params.paramname을 사용할 수 있습니다 http://myhost.com/items/23 : 링크는 같은 수

    GET 방식을 통해 매개 변수를 전달하는 2 가지 방법이 있습니다 방법 1 : paramName에 : 당신은 / routename / 같은 매개 변수를 전달하는 MVC 접근 방식 예 나는 PARAM로 아이디를 기대하고 코드 아래 참조를 들어이 경우 매개 변수 값을 얻을 수 req.params.paramname을 사용할 수 있습니다 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);
    

    방법 2 : 일반적인 방법 : 쿼리 문자열로 전달 변수를 사용하여 '?' 운영자 예를 들어 내가 쿼리 매개 변수로 아이디를 기대하고 코드 아래 참조 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);
    

  9. 9.당신이 뭔가를 할 수 있어야한다 :

    당신이 뭔가를 할 수 있어야한다 :

    var http = require('http');
    var url  = require('url');
    
    http.createServer(function(req,res){
        var url_parts = url.parse(req.url, true);
        var query = url_parts.query;
    
        console.log(query); //{Object}
    
        res.end("End")
    })
    

  10. 10.2014 UPDATE 5월 4일

    2014 UPDATE 5월 4일

    올드 대답은 여기에 보존 : https://gist.github.com/stefek99/b10ed037d2a4a323d638

    1) 표현 설치 : Express를 설치 NPM

    app.js

    var express = require('express');
    var app = express();
    
    app.get('/endpoint', function(request, response) {
        var id = request.query.id;
        response.end("I have received the ID: " + id);
    });
    
    app.listen(3000);
    console.log("node express app started at http://localhost:3000");
    

    2) 응용 프로그램을 실행하여 노드 app.js를

    HTTP : 브라우저에서 3) 방문 // localhost를 : 3000 / 엔드 포인트 ID = 뭔가

    (많은 것들이 내 대답은 이후 변경된 그리고 그것이 최신 가치가 유지 것을 믿습니다)


  11. 11.포트 9080에 작은 Node.js를 HTTP 서버 듣기, 구문 분석 GET 또는 POST 데이터 및 응답의 일부로 다시 클라이언트로 전송은 다음과 같습니다

    포트 9080에 작은 Node.js를 HTTP 서버 듣기, 구문 분석 GET 또는 POST 데이터 및 응답의 일부로 다시 클라이언트로 전송은 다음과 같습니다

    var sys = require('sys'),
    url = require('url'),
    http = require('http'),
    qs = require('querystring');
    
    var server = http.createServer(
    
        function (request, response) {
    
            if (request.method == 'POST') {
                    var body = '';
                    request.on('data', function (data) {
                        body += data;
                    });
                    request.on('end',function() {
    
                        var POST =  qs.parse(body);
                        //console.log(POST);
                        response.writeHead( 200 );
                        response.write( JSON.stringify( POST ) );
                        response.end();
                    });
            }
            else if(request.method == 'GET') {
    
                var url_parts = url.parse(request.url,true);
                //console.log(url_parts.query);
                response.writeHead( 200 );
                response.write( JSON.stringify( url_parts.query ) );
                response.end();
            }
        }
    );
    
    server.listen(9080);
    

    그것을 저장 parse.js으로, "노드 parse.js"를 입력하여 콘솔에서 실행합니다.


  12. 12.Whitequark는 잘 반응했다. 그러나 Node.js를하고 Express.js의 현재 버전은 한 번 더 라인이 필요합니다. (가) 'HTTP 요구'(두 번째 줄)를 추가해야합니다. 나는 쇼가이 호출이 작동하는 방법을 것을 여기 풀러 예를 게시했습니다. 실행되면, HTTP를 입력 : // localhost를 : 8080 / 이름 = 아벨 & 과일 브라우저에서 = 사과하고 코드를 기반으로 시원한 응답을받을 수 있습니까?.

    Whitequark는 잘 반응했다. 그러나 Node.js를하고 Express.js의 현재 버전은 한 번 더 라인이 필요합니다. (가) 'HTTP 요구'(두 번째 줄)를 추가해야합니다. 나는 쇼가이 호출이 작동하는 방법을 것을 여기 풀러 예를 게시했습니다. 실행되면, HTTP를 입력 : // localhost를 : 8080 / 이름 = 아벨 & 과일 브라우저에서 = 사과하고 코드를 기반으로 시원한 응답을받을 수 있습니까?.

    var express = require('express');
    var http = require('http');
    var app = express();
    
    app.configure(function(){
        app.set('port', 8080);
    });
    
    app.get('/', function(req, res){
      res.writeHead(200, {'content-type': 'text/plain'});
      res.write('name: ' + req.query.name + '\n');
      res.write('fruit: ' + req.query.fruit + '\n');
      res.write('query: ' + req.query + '\n');
      queryStuff = JSON.stringify(req.query);
      res.end('That\'s all folks'  + '\n' + queryStuff);
    });
    
    http.createServer(app).listen(app.get('port'), function(){
        console.log("Express server listening on port " + app.get('port'));
    })
    

  13. 13.너무 간단하다 :

    너무 간단하다 :

    예 URL :

    http://stackoverflow.com:3000/activate_accountid=3&activatekey=$2a$08$jvGevXUOvYxKsiBt.PpMs.zgzD4C/wwTsvjzfUrqLrgS3zXJVfVRK
    

    당신은 사용하여 쿼리 문자열의 모든 값을 인쇄 할 수 있습니다 :

    console.log("All query strings: " + JSON.stringify(req.query));
    

    산출

    특정을 인쇄하려면 :

    console.log("activatekey: " + req.query.activatekey);
    

    산출


  14. 14.당신이 사용할 수있는

    당신이 사용할 수있는

    request.query.<varible-name>;
    

  15. 15.당신은 명시 ^ 4.15.4로 사용할 수 있습니다 :

    당신은 명시 ^ 4.15.4로 사용할 수 있습니다 :

    var express = require('express'),
        router = express.Router();
    router.get('/', function (req, res, next) {
        console.log(req.query);
    });
    

    도움이 되었기를 바랍니다.


  16. 16.express.js에서 당신은 아주 쉽게 그것을 얻을 수 있습니다, 당신은 당신의 컨트롤러 기능으로 할 필요가 있습니다 :

    express.js에서 당신은 아주 쉽게 그것을 얻을 수 있습니다, 당신은 당신의 컨트롤러 기능으로 할 필요가 있습니다 :

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

    그리고 당신이 ES6 구문을 사용하는 가정, 모든입니다.

    PD. {ID}는 개체 destructuring, 새로운 ES6 기능을 의미합니다.


  17. 17.

    app.get('/user/:id', function(req, res) {
        res.send('user' + req.params.id);    
    });
    

    이를 사용하거나 요청 매개 변수에서 특정 요소를 구문 분석 몸 파서를 시도 할 수 있습니다.


  18. 18.그것은 실제로 간단한 :

    그것은 실제로 간단한 :

    const express= require('express');
    const app = express();
    
    app.get('/post', (req, res, next) => {
      res.send('ID:' + req.query.id + ' Edit:'+ req.query.edit);
    });
    
    app.listen(1000);
    
    // localhost:1000/post?id=123&edit=true
    // output: ID: 123 Edit: true
    

  19. 19.그래서,이 "ID가"수신 할 수있는 두 가지 방법이 있습니다 : 1) PARAMS를 사용 : 코드 PARAMS이 같이 보일 것입니다 : 우리는 배열을 말해봐

    그래서,이 "ID가"수신 할 수있는 두 가지 방법이 있습니다 : 1) PARAMS를 사용 : 코드 PARAMS이 같이 보일 것입니다 : 우리는 배열을 말해봐

    const courses = [{
        id: 1,
        name: 'Mathematics'
    },
    {
        id: 2,
        name: 'History'
    }
    ];
    

    그런 다음 PARAMS 위해 우리는 뭔가를 같이 할 수 있습니다 :

    app.get('/api/posts/:id',(req,res)=>{
        const course = courses.find(o=>o.id == (req.params.id))
        res.send(course);
    });
    

    2) 또 다른 방법은 쿼리 매개 변수를 사용하는 것입니다. 그래서 URL이 "? ID = 1"쿼리 부분이다 "..... \ API \ XYZ? ID = 1"과 같을 것입니다. 이 경우 우리는 뭔가를 같이 할 수 있습니다 :

    app.get('/api/posts',(req,res)=>{
        const course = courses.find(o=>o.id == (req.query.id))
        res.send(course);
    });
    

  20. 20.당신은 url.parse를 사용하여 수집 매개 변수를 URL 모듈을 사용할 수 있습니다

    당신은 url.parse를 사용하여 수집 매개 변수를 URL 모듈을 사용할 수 있습니다

    var url = require('url');
    var url_data = url.parse(request.url, true);
    var query = url_data.query;
    

    expressjs에서 그것은에 의해 이루어집니다,

    var id = req.query.id;
    

    예 :

    var express = require('express');
    var app = express();
    
    app.get('/login', function (req, res, next) {
        console.log(req.query);
        console.log(req.query.id); //Give parameter id
    });
    

  21. 21.Express에서, 우리는 단순히 req.query를 사용할 수 있습니다. <이름>. 그것은 PHP에서 $ _GET [ '이름']의 경우와 동일하게 작동합니다.

    Express에서, 우리는 단순히 req.query를 사용할 수 있습니다. <이름>. 그것은 PHP에서 $ _GET [ '이름']의 경우와 동일하게 작동합니다.


  22. 22.내 관점에서 나는 많은 사람들이 서로 다른 두 가지 개념을 혼합 생각합니다. 나머지 개발 동안 나는 두 가지 방법으로 "경로 변수"와 "요청 매개 변수"(쿼리 매개 변수)를 URL에 정보를 전달을 잘 알고 있었다. 은 RFC는 다음과 같이 URI 부분을 설명합니다 : 그 저자가 요청 매개 변수를 전달하는 방법을 알고 싶습니다 이해 그래서 여기에 링크의 설명을 입력합니다. 난 단지 쉽게 주제를 이해할 수 있도록 할 것입니다,하지만이 솔루션은 여기에 여러 번 언급했다.

    내 관점에서 나는 많은 사람들이 서로 다른 두 가지 개념을 혼합 생각합니다. 나머지 개발 동안 나는 두 가지 방법으로 "경로 변수"와 "요청 매개 변수"(쿼리 매개 변수)를 URL에 정보를 전달을 잘 알고 있었다. 은 RFC는 다음과 같이 URI 부분을 설명합니다 : 그 저자가 요청 매개 변수를 전달하는 방법을 알고 싶습니다 이해 그래서 여기에 링크의 설명을 입력합니다. 난 단지 쉽게 주제를 이해할 수 있도록 할 것입니다,하지만이 솔루션은 여기에 여러 번 언급했다.

    당신은 request.query로 URI에서 쿼리 매개 변수를 얻을 수 있습니다. <매개 변수의 이름>, 두 번째 언급 한 솔루션은 request.params. <매개 변수의 이름>이고이 당신은 경로 변수를 얻을 수 있습니다.


  23. 23.

    var express = require('express');
    var app = express();
    
    app.get('/', function(req, res){
      res.send('id: ' + req.query.id);
    });
    
    app.listen(3000);
    

  24. 24.만약 당신이 (다른 답변 당신은 포트 변수를 지정할 수 있습니다 언급하지 않았다) 도메인뿐만 아니라 IP에 GET 요청을 전송해야하는 경우이 기능을 사용할 수있다 :

    만약 당신이 (다른 답변 당신은 포트 변수를 지정할 수 있습니다 언급하지 않았다) 도메인뿐만 아니라 IP에 GET 요청을 전송해야하는 경우이 기능을 사용할 수있다 :

    function getCode(host, port, path, queryString) {
        console.log("(" + host + ":" + port + path + ")" + "Running httpHelper.getCode()")
    
        // Construct url and query string
        const requestUrl = url.parse(url.format({
            protocol: 'http',
            hostname: host,
            pathname: path,
            port: port,
            query: queryString
        }));
    
        console.log("(" + host + path + ")" + "Sending GET request")
        // Send request
        console.log(url.format(requestUrl))
        http.get(url.format(requestUrl), (resp) => {
            let data = '';
    
            // A chunk of data has been received.
            resp.on('data', (chunk) => {
                console.log("GET chunk: " + chunk);
                data += chunk;
            });
    
            // The whole response has been received. Print out the result.
            resp.on('end', () => {
                console.log("GET end of response: " + data);
            });
    
        }).on("error", (err) => {
            console.log("GET Error: " + err);
        });
    }
    

    파일의 상단에 모듈을 필요로 놓치지 마세요 :

    http = require("http");
    url = require('url')
    

    또한 당신이 이상의 보안 도메인 및 SSL 통신을 위해 HTTPS 모듈을 사용할 수 있음을 염두에 베어. 그래서이 두 줄을 변경합니다 :

    https = require("https");
    ...
    https.get(url.format(requestUrl), (resp) => { ......
    

  25. 25.왜 서버 코드와 혼합하지

    왜 서버 코드와 혼합하지

    예컨대. PHP

    <script>
    var ip=<?php echo($_SERVER['REMOTE_ADDR']);?>
    
    </script>
    

  26. 26.내가 express@4.16와 MEANJS 0.6.0을 사용하고, 그것의 좋은

    내가 express@4.16와 MEANJS 0.6.0을 사용하고, 그것의 좋은

    고객:

    제어 장치:

    var input = { keyword: vm.keyword };
    ProductAPi.getOrder(input)
    

    서비스:

    this.getOrder = function (input) {return $http.get('/api/order', { params: input });};
    

    섬기는 사람

    루트

    app.route('/api/order').get(products.order);
    

    제어 장치

    exports.order = function (req, res) {
      var keyword = req.query.keyword
      ...
    
  27. from https://stackoverflow.com/questions/6912584/how-to-get-get-query-string-variables-in-express-js-on-node-js by cc-by-sa and MIT license