我有一个使用 Express (4.0.0) 公开的基于 NodeJS 的 REST 服务,其中我有两个不同的路由,如下所示:
router.get('/buckets/:bucketId/entities/bulk', getEntitiesInBulk);
router.get('/buckets/:bucketId/entities/:key', getEntityByKey);
当我发送这样的请求时:
http://<server:port>/buckets/responses/entities/k3
该请求由我在那里定义的 getEntityByKey()
处理,但奇怪的是,当我用许多请求轰炸它时,它有时会由 getEntitiesInBulk()
处理,并且在响应中收到一些错误,该错误仅由 getEntitiesInBulk()
抛出。
我完全困惑这怎么可能。
最佳答案
Express 很困惑,因为您的路线并不唯一。 “bulk”有时会在第一个路由中用作 :key。只需稍微更改一下签名,例如
router.get('/buckets/:bucketId/entities/bulk', getEntitiesInBulk);
router.get('/buckets/:bucketId/entity/:key', getEntityByKey);
关于javascript - express 有时会选择错误的路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30724069/