我遇到的问题是我正在使用chai-http测试api,但是它触及中间件意味着它不会调用next()函数。不确定如何处理,很少有指导可能对我有很大帮助。这是我的代码,可能会帮助您更好地理解。
中间件
function middleware(req, res, next) => {
// doing some stuff
console.log("step 1") // prints
next()
}
API
router.get('/orders', middleware, (req, res) => {
// some stuff
console.log("step 2") // not prints
res.send(result)
})
测试用例
let order = new Order(mockOrder);
order.save((err, order) => {
chai.request(server)
.get('/orders')
.end((err, res) => {
// some stuff
})
})
答案 0 :(得分:0)
此更新可能对您有用,来自github。
另一个重大突破是,chai.request(server)对象将在第一个请求后自动关闭服务器连接。这意味着如果您有这样的代码:
您需要将其更改为:
const request = chai.request(app).keepOpen()