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

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

我是 node.js 新手,我正在用它创建我的第一个大型应用程序(我正在使用 express)。我需要让我的网页执行一些 javascript canvas-当用户使用 get 请求加载 id 时的绘图,例如

www.mywebsite.com/page?id=22

我知道我可以用一个简单的方法来处理这个问题

var express        =        require("express");
var app            =        express();
app.get('handle',function(request,response){
    //request.id
});

但我不知道如何使用该 ID 要求的绘图启动我的网页。互联网上关于 express 和 get 的每个教程都解释了如何处理 get 请求......这个问题是关于 "what happens next?"

改写:我不确定如何告诉 html 页面“你需要从 express 中绘制与此 id 关联的内容”然后发送该页面返回给用户。

您可以从 params 获取 id,然后根据该 ID 对 return 进行响应。

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 响应服务器。在这个例子中,我 return 编辑了一个 j 对象 .

  3. writeHead 200 中来自状态,这意味着 OKcontent-type意味着我 return 一个 json object

  4. 你可以return你想要什么,页面或其他什么,这只是一个例子(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'
        }));
    }
});

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