alovajs / alova

Creative next-generation request tools. Extremely improve your API using efficiency and save brainpower Just one step

Home Page:https://alova.js.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

使用Mock的时候直接报 TypeError: Cannot read properties of undefined (reading 'toString')

jekip opened this issue · comments

请详细描述bug

我原本想使用 @faker-js/faker 这个库来创建假数据,即便我不用 直接写死数据也依然存在这个问题,详细对比文档使用方案,好像并没有看错差异,还请作者指点迷津,感谢!

image

export default defineMock({
// 登录
'[POST]/login': () => {
return {
id: faker.number.int({ max: 99999999, min: 10000 }),
token: faker.string.uuid(),
}
}
})

const mockAdapter = createAlovaMockAdapter([mockUser], {
enable: true,
httpAdapter: GlobalFetch(),
delay: 1000,
mockRequestLogger: true,
onMockResponse: data => new Response(JSON.stringify(data)),
});

export const Alova = createAlova({
baseURL: apiUrl,
statesHook: VueHook,
requestAdapter: mockAdapter,
})

复现链接

123

复现步骤

配置 mock,之后,直接在页面,发生请求

期望的表现

另外补充一点需求,这个 mock 包装器,当触发请求的适合,浏览器/终端,原本就无法看到网络请求吗?

alova 版本

2.20.1

设备/浏览器/浏览器版本

No response

额外的说明

No response

@JOU-amjs 有空的时候帮我看一下、alovajs 库不错,我打算把我们产品,统一切换到 alovajs

@jekip 非常感谢你的认可啊,你的问题是onMockResponse配置错了,它应该返回一个包含responseheaders。不过我看你使用了GlobalFetch,可以不用设置onMockResponse,具体查看这里

Indeed, thank you very much

对了,这个适配器是本地模拟请求的,并没有实际发出请求,因此是看不到请求信息的

好的,如果能看到无非也是一大亮点,不过要兼容多个环境使用,可能确实有一些工作量,vite 下的话 vite-plugin-fake-server 体验还是不错的,最后,期待 alovajs 越来越好!

感谢😁,确实存在很多适配问题,现在的话,我们的在控制台会输出请求和响应信息哦