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



我是一个节点.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
});

但我不知道如何使用该 ID 的要求绘图开始我的网页。互联网上关于快速和获取的每个教程都解释了如何处理获取请求......那么这个问题是关于"接下来会发生什么?

改写:我不确定我应该如何从快递中告诉 html 页面"你需要绘制与此 id 关联的内容",然后将该页面发送回用户。

您可以从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 之类的 URL,并且您可以使用 request.params.id 访问服务器上的 id(输出:22)。

  2. 使用response,您可以write对服务器的响应。在此示例中,我返回了一个 json 对象

  3. writeHead 200 来自 state 表示 OKcontent-type 表示我返回一个 json 对象

  4. 您可以返回所需的页面或其他内容,这只是一个例子(PoC)。

如果要在请求中传递多个变量,可以通过以下方式传递它:

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

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

最新更新