我有一个模仿授权 POST 请求的简单 API 端点服务器函数:
/** @type {import('./$types').RequestHandler} */
import { json, error } from '@sveltejs/kit'
export async function POST({ request }) {
const data = await request.json()
if (!data.username || !data.password) {
return error(400, 'Missing username or password.')
}
return json({ username: data.username, id: 1 })
}
以及在
+page.svelte
中使用此功能的表格:
async function login() {
const response = await fetch('/api/auth/login', {
method: 'POST',
body: JSON.stringify({
username,
password
})
})
const resJSON = await response.json()
console.log('Form submitted', resJSON)
}
但是我在终端中收到一个错误:
Error: Invalid response from route /api/auth/login: handler should return a Response object
.
我不是在 json({}) 中返回一个对象吗?
函数
error()
不返回任何可返回的东西。事实上,它返回一个你必须抛出的异常,改变行
return error(400, 'Missing username or password.')
为此
throw error(400, 'Missing username or password.')
会解决你的问题