我正在使用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感到困惑,因为您的路线不是唯一的。在第一条路线中,“批量”有时会用作:key。只需稍微更改签名即可,例如
router.get('/buckets/:bucketId/entities/bulk', getEntitiesInBulk);
router.get('/buckets/:bucketId/entity/:key', getEntityByKey);
关于javascript - express 有时会选错路线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30724069/