按照文档,我在里面设置了这个处理程序routes():
this.put(
'/admin/features/error/environment/test',
// @ts-ignore
() => new Response(500, {}, { errors: ['The database went on vacation'] }),
);
Run Code Online (Sandbox Code Playgroud)
Mirage 确实收到了我所设置的内容。这是来自浏览器控制台日志的响应。请注意,尽管500 显示在_bodyInit:
{
"type": "default",
"status": 200,
"ok": true,
"statusText": "",
"headers": {
"map": {
"content-type": "text/plain;charset=UTF-8"
}
},
"url": "",
"bodyUsed": false,
"_bodyInit": 500,
"_bodyText": "[object Number]"
}
Run Code Online (Sandbox Code Playgroud)
请注意,我需要ts-ignore这可能是一条线索。TS 抱怨new Response预计有 0-2 个参数,但得到了 3 个。
尝试导入 Mirage Response类:
import { Response } from 'miragejs';
Run Code Online (Sandbox Code Playgroud)
否则,Response引用Fetch API Response对象。这解释了调用路由时的类型检查错误和意外行为。
添加导入后,您可以删除@ts-ignore,并且对路由的请求应该会失败,状态代码为 500。
| 归档时间: |
|
| 查看次数: |
593 次 |
| 最近记录: |