如何使用node.js(express)处理GET请求

4

我是一个node.js新手,并且正在使用express创建我的第一个大型应用程序。当用户使用get请求加载id时,我需要让我的网页执行一些javascript画布绘制操作,例如:

www.mywebsite.com/page?id=22

我知道我可以用简单的方法处理这个问题。
var express        =        require("express");
var app            =        express();
app.get('handle',function(request,response){
    //request.id
});

但是我不知道如何使用所需的绘图来启动我的网页。互联网上关于express和get的每个教程都解释了如何处理get请求... 那么这个问题是关于“接下来会发生什么?”

重述:我不确定应该如何告诉html页面“您需要绘制与此id相关联的内容”,然后从express发送该页面回给用户。

2个回答

7
你可以从params中获取id,然后根据该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));
});

注意:

  1. 你可以使用/page/:id创建像www.mywebsite.com/page/22www.mywebsite.com/page?id=22这样的网址,并且你可以在服务器上使用request.params.id来访问id (输出:22)。

  2. 使用response你可以向服务器发送一个响应。在这个例子中,我返回了一个json对象。

  3. writeHead中,200表示状态为OK,而content-type表示我返回了一个json对象

  4. 你可以返回任何你想要的东西,一个页面或其他东西,这只是一个示例(PoC)。


0
如果您想将多个变量传递给请求,可以按照以下方式传递:
var emailVar = "someEmail@gmail.com";
var nameVar = "someName";
var url = `/home?email=${emailVar}&name=${nameVar}`;
//Now make the request.

在后端逻辑中,您可以将这些值检索为:

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

这种方法对于在后端执行查询操作非常有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接