Skip to content

post Endpoint (not working) #27

Open

Description

@oneezy

Bug description

I'm taking the Fullstack SvelteKit course and running into a bug at the 2:56:00 mark when trying to create the post Endpoint
https://youtu.be/OUzaUJ3gEug?t=10560

import type { RequestHandler } from "@sveltejs/kit";

// this breaks...
export const post: RequestHandler<{}, FormData> = (request) => {
  console.log(request.body.get("text"));
} 

When submitting the post request from the form, I get the 500 (Internal Server Error) and it appears that a new Breaking PR was merged in 7 days ago from rich that broke it
sveltejs/kit#3384

Can anyone recommend a good step-by-step for me to follow to fix?

Steps to reproduce

Follow the tutorial! :)

Expected behavior

No response

Example repository

You can see the finished code in question on Github
https://github.com/gitpod-io/full-stack-web-development/blob/main/src/routes/todos/index.json.ts

Anything else?

No response

Activity

  1. j314h commented on Jan 27, 2022

    @j314h

    Description du bogue

    Je suis le cours Fullstack SvelteKit et je rencontre un bogue à la 2:56:00marque lorsque j'essaie de créer le **post Endpoint ** https://youtu.be/OUzaUJ3gEug?t=10560

    import type { RequestHandler } from "@sveltejs/kit";
    
    // this breaks...
    export const post: RequestHandler<{}, FormData> = (request) => {
      console.log(request.body.get("text"));
    } 
    

    Lors de la soumission de la demande de publication à partir du formulaire, j'obtiens le 500 (erreur de serveur interne) et il semble qu'un nouveau Breaking PR a été fusionné il y a 7 jours par Rich qui l'a cassé sveltejs/kit#3384

    Quelqu'un peut-il me recommander une bonne étape par étape à suivre pour réparer?

    Étapes à reproduire

    Suivez le tutoriel ! :)

    Comportement attendu

    Pas de réponse

    Exemple de référentiel

    Vous pouvez voir le code fini en question sur Github https://github.com/gitpod-io/full-stack-web-development/blob/main/src/routes/todos/index.json.ts

    Rien d'autre?

    Pas de réponse

    hello, did you find a solution?
    I'm in the same situation as you.

    here is my code

    export const post = async ({ request }) => {
      const t = await request.formData();
      console.log(t.get('test'));
    
      return {
        status: 200,
        headers: {
          location: '/',
        },
        body: {
          state: true,
        },
      };
    };

    my console.log() returns me a " file{} "
    an empty object. the "test" key exists
    but it is empty

    if you solved your problem i would like some help
    thank you for your future response

  2. oneezy commented on Jan 28, 2022

    @oneezy
    Author

    hey @j314h , I actually did solve it!

    This will get you halfway through the tutorial but I'm running into more issues as I get further along. But I'm confident in making it to the end. Still reading through the new SvelteKit docs and seeing how to update code that's changed.

    Anyways, give this a try and let me know if it helps.

    import type { RequestHandler } from "@sveltejs/kit";
    
    // get
    export const get: RequestHandler = async ({ request }) => {
      return {
        status: 200,
        body: "Hello from the API!"
      }
    }
    
    // post
    export const post: RequestHandler = async ({ request }) => {
      const formData = await request.formData();
    
      return {
        body: formData.get('text') as string
      }
    }
  3. wooseok-yang-kr commented on May 22, 2022

    @wooseok-yang-kr

    hey guys i had same Problem too.
    and i fixed it without RequestHandler.
    for that i read BodyParsing in SvelteKit Doc https://kit.svelte.dev/docs/routing#endpoints-body-parsing

    Here's my code

    export async function post({ request }: any) {
    	const data = await request.formData(); // or .json(), or .text(), etc
    	todos.push({
    		created_at: new Date(),
    		text: data.get('text') as string,
    		done: false
    	});
    	return {
    		status: 303,
    		headers: {
    			location: '/'
    		}
    	};
    }
  4. zfbxrk518 commented on Jul 28, 2022

    @zfbxrk518

    Huansock

    Thank you Huansock, it works! Your answer is the best! It's just now you still need to change the word "post" into uppercase "POST", otherwise it still fails.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions