我目前使用 npm chai 版本 5.1.1,它现在仅支持导入而不支持 require。我使用了动态导入,效果很好。但是,当我将 chai-http 中间件与 chai 一起使用时,它没有按预期工作并且给我一个错误。
这是我正在使用的语法:
let chai, expect, chaiHttp, request;
(async() => {
expect = (await import ('chai')).expect;
chai = (await import('chai')).default;
chaiHttp = (await import('chai-http')).default;
chai.use(chaiHttp);
})();
it("should return a 200 response", async function() {
const response = await chai.request(app).get('/abc');
expect(response).to.have.status(200);
});
看来 chai.use(chaiHttp);由于 JavaScript 的异步行为,未按预期运行。我不确定为什么会发生这种情况。
任何人都可以帮助我理解这个问题并提出可能的解决方案吗?
这样改变
const use = (await import('chai')).use;
expect = (await import ('chai')).expect;
chaiHttp = (await import('chai-http')).default;
chai = use(chaiHttp);