dev*_*ero 9 typescript svelte sveltekit
我想在我的 hooks.server.ts import type { Handle } from '@sveltejs/kit'; 中读取请求的正文
export const handle = (async ({ event, resolve }) => {
console.log(event.request.body);
const response = await resolve(event);
return response;
}) satisfies Handle;
Run Code Online (Sandbox Code Playgroud)
这给了我
ReadableStream { locked: false, state: 'readable', supportsBYOB: false }
Run Code Online (Sandbox Code Playgroud)
如果我读了它
const reader = request.body.getReader();
let text;
let result;
while (!(result = await reader.read()).done) {
text += result.value;
}
console.log(text);
console.log(request.body);
Run Code Online (Sandbox Code Playgroud)
然后记录正文,我得到:
ReadableStream { locked: true, state: 'closed', supportsBYOB: false }
Run Code Online (Sandbox Code Playgroud)
这导致我想要执行的实际调用抛出错误
TypeError:主体在 Request.json (/home/hp/git/booking/node_modules/undici) 的 specConsumeBody (/home/hp/git/booking/node_modules/undici/lib/fetch/body.js:492:11) 处不可用/lib/fetch/body.js:359:14)
如何读取钩子中的正文?
Tob*_*eck 17
TypeError: Body is unusable我在尝试使用 JSON 正文调试 POST 请求时收到错误,因为我确实等待了该请求两次。
console.log(await request.text()) // X only this is logged
console.log(await request.json()) // --> throws error
Run Code Online (Sandbox Code Playgroud)
相反,只需等待一次请求!
console.log(await request.json()) // logs, no error
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9426 次 |
| 最近记录: |