使用chai-http Node Js Express处理中间件

时间:2018-06-21 06:33:10

标签: node.js express mocha chai chai-http

我遇到的问题是我正在使用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
   })
  })

1 个答案:

答案 0 :(得分:0)

此更新可能对您有用,来自github。

另一个重大突破是,chai.request(server)对象将在第一个请求后自动关闭服务器连接。这意味着如果您有这样的代码:

您需要将其更改为:

const request = chai.request(app).keepOpen()