Nodejs + Express:如何获取发出 HTTP GET 请求的元素?

Nodejs + Express: How to get an element which made an HTTP GET request?

我正在使用 Express 创建前台。我有一个 table,其中每一行都有一个发出 GET 请求的 link,以便后端(用 node.js 完成)returns 一个与该行对应的文件. 所有 link 都会像 "/documents/table/file" 一样发出 url GET 请求。 我打算做的是让我的快递服务器能够知道哪一行的 link 使用它的 req 字段发出 GET 请求,以便能够 return相应的请求文件。

请求在我的快递服务器中处理如下:

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

正如我之前所说,我打算知道 link 从 table 的哪一行使用 req 字段执行请求。

简而言之:你不可能知道这个。

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

因此,如果它是对 /foo/get-fileGET 请求,并且每个 'file' 都有某种唯一 ID,您可能需要将 url 更改为 /foo/get-file/123/foo/get-file?id=123

是否要使用 get 命令访问特定文件?如果是这样,这里有一个答案 - .

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

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

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

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

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

在 nodejs express 结尾:

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 express 结尾:

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