【问题标题】:Nodejs + Express: How to get an element which made an HTTP GET request?Nodejs + Express:如何获取发出 HTTP GET 请求的元素?
【发布时间】:2020-01-15 13:36:32
【问题描述】:

我正在使用 Express 制作正面。我有一个表,其中每一行都有一个发出 GET 请求的链接,以便后端(使用 node.js 完成)返回与该行对应的文件。 所有链接都会发出 url GET 请求,例如 "/documents/table/file"。 我打算做的是让我的快递服务器能够知道哪一行的哪个链接使用它的req字段发出GET请求,以便能够返回相应的请求文件。

我的快递服务器正在处理该请求,如下所示:

router.get('/documents/table/file', async (req, res) =>{
  //Get which element made the get petition
});

正如我之前所说,我打算使用req 字段了解表格中哪一行执行请求的链接。

【问题讨论】:

    标签: javascript node.js express get-request


    【解决方案1】:

    您需要传递有关发出GET 请求的/项目的信息,这是必须的。

    现在有了Express,有几种方法可以做到这一点:Express routing

    1.定义路由参数: req.params

    GET 请求:/documents/table/file/345(345 是行标识符 name or id 等)

    在nodejs快递端:

    router.get("/documents/table/file/:id", (req, res) => {
      /*request parameter with this kind of route sits in req.params*/
      console.log(req.params);
      const requestedId = req.params.id;
    });
    

    2。作为查询字符串参数发送: req.query

    GET 请求:/documents/table/file?id=345

    在nodejs快递端:

    router.get("/documents/table/file/", (req, res) => {
      /*request parameter with this kind of route sits in req.query*/
      console.log(req.query);
      const requestedId = req.query.id;
    });
    

    【讨论】:

      【解决方案2】:

      简短的版本是:你不能知道这个。

      这通常的处理方式是,如果需要对特定项目(或表中的行)进行请求,则需要在 url 中添加一些相关信息,以便自己识别。

      因此,如果它是对/foo/get-fileGET 请求,并且每个“文件”都有某种唯一ID,您可能希望将您的网址更改为/foo/get-file/123/foo/get-file?id=123

      【讨论】:

      • 感谢您的回答。但是你如何在你的 node.js 服务器上处理它呢?
      【解决方案3】:

      您想使用get 命令访问特定文件吗?如果是这样,这是一个答案 - Express router - :id?

      更准确地说,你写了类似router.get('/documents/table/file/:id) 的东西,而这个:idreq.params 对象中可用。

      【讨论】:

        猜你喜欢
        • 2018-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-04
        • 2014-08-15
        相关资源
        最近更新 更多