SvelteKIt:收到错误“处理程序应该返回响应”,虽然我正在返回一个?

问题描述 投票:0回答:1

我有一个模仿授权 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({}) 中返回一个对象吗?

httprequest svelte sveltekit
1个回答
0
投票

函数

error()
不返回任何可返回的东西。事实上,它返回一个你必须抛出的异常,改变行

 return error(400, 'Missing username or password.')

为此

throw error(400, 'Missing username or password.')

会解决你的问题

© www.soinside.com 2019 - 2024. All rights reserved.