我使用swagger(swagger.io)构建应用的API,在生产环境中一切正常。但是,当我对这些API运行一些摩卡测试时,我不断收到此错误,状态代码为429太多请求:
Unhandled rejection Error: Too Many Requests
at Request.callback (..../node_modules/superagent/lib/node/index.js:698:17)
at IncomingMessage.<anonymous> (..../node_modules/superagent/lib/node/index.js:922:12)
at emitNone (events.js:91:20)
at IncomingMessage.emit (events.js:185:7)
at endReadableNT (_stream_readable.js:926:12)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickDomainCallback (internal/process/next_tick.js:122:9)
通常这个错误发生在我连续运行两次摩卡测试之后(即从第三次开始抛出这个错误).我怀疑我的localhost服务器超载了,但是即使我关闭并重新打开服务器,错误仍然存在.
如果有人能给我指出解决这个问题的正确方向,我将超级感激。
1条答案
按热度按时间9jyewag01#
我猜您使用的express-rate-limit带有一些环境变量,这些变量在测试过程中可能会丢失。在这种情况下,rateLimiter将尝试使用默认值(根据它们的documentation:
因此,当您看到错误消息时,它将显示类似**超出请求速度(5个最大请求中有6个)**的内容
所以你可以做的是设置你的默认值,以防你的变量是未定义的。或者你可以在你的测试文件中设置它们。对于第一种方法,你可以像下面这样: