我正在尝试sveltekit表单操作,它不断给出500内部错误,标题在控制台:node.component is not a function
src/routes/login/+page.server.js
import type { Actions } from '@sveltejs/kit';
export const actions: Actions = {
default: async ({ request, cookies, url }) => {
return { success: true }
}
};
src/routes/+page.svelte
<form method="POST" action="/login">
<div class="card-body">
<button class="btn btn-primary w-100" type="submit">Login</button>
</div>
</form>
3条答案
按热度按时间rwqw0loc1#
你需要添加一个文件
src/routes/login/+page.svelte
,因为没有它表单将无法工作。请注意,它需要是确切的文件名(分别为+page.svelte
或+layout.svelte
)。或者,如果您有一个
+layout.server.ts
,则添加一个包含<slot/>
的+layout.svelte
8cdiaqws2#
我添加此答案是因为我遇到了同样的问题,但找不到表单缺少的
+page.svelte
。我有一个嵌套的
+layout.server.ts
,只是用来提供数据,但是我没有对应的+layout.svelte
。我只是把
<slot />
放到这个新的嵌套的+layout.svelte
中。k5hmc34c3#
同样的错误,但在我的情况下,我只是命名文件不正确。在我的情况下,我有:
src/blog/[slug]/page.svelte
代替
src/blog/[slug]/+page.svelte
(注意加号)这导致Svelte忽略文件并抛出
TypeError: node.component is not a function
错误。我更正了名称,现在它可以工作了。