Axios:在"Network Error"的情况下如何获取错误代码?



我想测试一个axios post调用,它应该使用"ECONNREFUSED"如果服务器没有运行

const promise= axios.post("/path/under/test", {"some":"data"});
await expect(promise).rejects.toThrowError("ECONNREFUSED");

不幸的是,错误包含一个非常通用的"网络错误"。测试中的消息。我可以在控制台输出中看到"some where"预期代码"ECONNREFUSED"是根错误的一部分。但是如何获得错误代码呢?

这就是" stringyfield "错误如下:

{"message":"Network Error","name":"Error","stack":"[...]"

原因

简化消息"网络错误";之所以显示,是因为Axios在测试期间假设它在浏览器中运行。出于安全考虑,所有与I/O相关的错误都简化为此消息,只有当Axios假设在Node中运行时才有可能区分特定的错误。

<<p>

解决方案/strong>在测试文件中导入以下代码时,将包含所有错误代码。它使Axios假定在Node中运行。这也有助于避免CORS问题。

axios.defaults.adapter = require("axios/lib/adapters/http");

最新更新