我如何在NodeJS中收听未知请求

时间:2016-11-23 13:08:46

标签: node.js request httprequest

我的Nodejs服务器将重新收到以下帖子请求:

POST /v1/devices/deviceID/registrations/typeID/serial#

其中deviceID,typeID,serial#是变量而不是相同的

我确实使用以下内容来确定这些变量是什么,但这不是我寻找的最佳解决方案,因为还有其他请求具有相同的开头,如/v1/devices/registrations/

app.post("/v1/devices/*", function (req, res) {
});

所以主要的问题是如何在收到具有以下结构/v1/devices/deviceID/registrations/typeID/serial#的帖子请求时识别出来,存储DeviceID,typeID和serial#的值

我如何对这两个请求做同样的事情,还要注意设备和类型ID是变量

if the following is requested 
GET /v1/devices/<deviceID>/registrations/<typeID>
do something 
else if 
GET /v1/devices/<deviceID>/registrations/<typeID>?passesUpdatedSince=<tag>
do something else 

1 个答案:

答案 0 :(得分:1)

虽然没有提及,但我假设你正在使用带有Node的ExpressJS,如果你没有使用Express,你就可以轻松地实现这一点。

您可以轻松使用路线参数的内置功能。<​​/ p>

http://expressjs.com/en/guide/routing.html

即。

app.post("/v1/devices/:deviceID/registrations/:typeID/:serial", function (req, res) {
  var deviceId = req.params.deviceId;
  var typeId = req.params.typeId;
  var serial = req.params.serial;
});

所以你不需要抓住所有你可以为每个请求设计特定的路线。

您可以对第二个示例使用完全相同的方法,并可以访问路径中的查询参数,例如req.query.passesUpdatedSince