一个棘手的问题——自作聪明吃的大亏
问题
错误关键字段:
Uncaught SyntaxError: Unexpected token u in JSON at position 0
错误的截图:
错误的效果图:
答案
错误之前的代码:
function hzhXHR2ExpressReqWrap(hzhRespond) {
return function(hzhOptions) {
let hzhResult = null
if (hzhRespond instanceof Function) {
const { hzhBody, hzhType, hzhUrl } = hzhOptions
hzhResult = hzhRespond({
methods: hzhType,
body: JSON.parse(hzhBody),
query: hzhParam2Obj(hzhUrl)
})
} else {
hzhResult = hzhRespond
}
return hzhMock.mock(hzhResult)
}
}
修改回来的代码:
function hzhXHR2ExpressReqWrap(hzhRespond) {
return function(hzhOptions) {
let hzhResult = null
if (hzhRespond instanceof Function) {
const { body, type, url } = hzhOptions
hzhResult = hzhRespond({
methods: type,
body: JSON.parse(body),
query: hzhParam2Obj(url)
})
} else {
hzhResult = hzhRespond
}
return hzhMock.mock(hzhResult)
}
}
重点是这一段代码:
if (hzhRespond instanceof Function) {
const { body, type, url } = hzhOptions
hzhResult = hzhRespond({
methods: type,
body: JSON.parse(body),
query: hzhParam2Obj(url)
})
这里的三个变量body, type, url
只是这样只写,应该是默认的写法。
最后模拟的数据都显示出来了: