How to handle a get request with node.js (express)

后端 未结 2 1504
清酒与你
清酒与你 2020-12-21 10:41

I\'m a node.js newbie and I\'m creating my first big app with it (I\'m using express). I need to have my webpage perform some javascript canvas-drawing when the user loads a

相关标签:
2条回答
  • 2020-12-21 11:17

    You can take the id from params and after this to return a response based on that id.

    var express = require('express');
    var app = express();
    
    app.get("/page/:id",function(request, response){
        var id = request.params.id;
        // do something with id
        // send a response to user based on id
        var obj = { id : id, Content : "content " +id };
    
        response.writeHead(200, {"Content-Type": "application/json"});
        response.write(JSON.stringify(obj));
    });
    

    Notes:

    1. You use /page/:id to make urls like www.mywebsite.com/page/22 or www.mywebsite.com/page?id=22 and you can have acces to id on server with request.params.id (output: 22).

    2. With response you can write a response to the server. In this example i returned a json object.

    3. In writeHead 200 come from status which means OK , and content-type means that I return a json object

    4. You can return what you want, a page or something else, this is just an example (PoC).

    0 讨论(0)
  • 2020-12-21 11:20

    If you want to pass multiple variables in the request, you can pass it in the following way:

    var emailVar = "someEmail@gmail.com";
    var nameVar = "someName";
    var url = `/home?email=${emailVar}&name=${nameVar}`;
    //Now make the request.
    

    and in the backend logic, you can retrieve these values as:

    app.get('/home', function(request, response)
    {
        console.log(request.query.email+"  "+request.query.name);
        var email = request.query.email;
        var name = request.query.name;
        response.setHeader('Content-Type', 'application/json');
        if(request.query.email)
        {
            response.send(JSON.stringify({
                message: 'Got the email'
            }));
        }
        else
        {
            response.send(JSON.stringify({
                message: 'No email sent'
            }));
        }
    });
    

    This approach is useful for performing query operations in the backend.

    0 讨论(0)
提交回复
热议问题