【问题标题】:How to handle a get request with node.js (express)如何使用 node.js (express) 处理获取请求
【发布时间】:2015-04-11 18:58:16
【问题描述】:

我是 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
});

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

改写:我不确定我应该如何告诉 html 页面“您需要绘制与此 id 关联的内容”,然后将该页面发送回给用户。 p>

【问题讨论】:

    标签: javascript node.js express get


    【解决方案1】:

    您可以从 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,您可以write 响应服务器。在这个例子中,我返回了一个 json 对象

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2016-05-13
        • 1970-01-01
        • 1970-01-01
        • 2020-04-18
        • 2023-03-12
        • 2013-09-13
        • 2022-01-20
        • 2020-11-27
        • 1970-01-01
        相关资源
        最近更新 更多