我有一个带有此端点的 API,它返回对象的限制:
last: async (req, res, next) => {
const limit = req.params.limit
if (!validator.isEmpty(limit) && validator.isInt(limit)) {
try {
let result = await Article.find({}).limit(parseInt(limit)).sort('-_id')
if (result && result.length < 1) {
return next(httpError(404, 'Not Found'))
}
} catch (err) {
console.error(err)
return next(httpError(500, 'Internal Server Error'))
}
return res.json({articles: result})
} else {
return next(httpError(400, 'Bad Request'))
}
}
另一方面,我有一个关于 jest 和 supertest 的测试,
const app = require('../app')
const request = require('supertest')
describe('GET /api/article/last/:limit', () => {
test('200 OK', async () => {
const limit = 2;
const response = await request(app).get(`/api/article/last/${limit}`)
.expect(200)
.expect('Content-Type', /json/)
})
})
我确定数据库中有文档,因为当我使用 Postman 请求端点时,我得到了正确的结果。
当我启动测试时,它给了我这个错误。
MongooseError: Operation `articles.find()` buffering timed out after 10000ms
at Timeout.<anonymous> (/Users/Ivan/Sites/blog-app-js/backend/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js:197:23)
at listOnTimeout (internal/timers.js:554:17)
at processTimers (internal/timers.js:497:7)
我尝试了 this,但仍然出现相同的错误。
谁能知道是否有解决方案?