Problèmes liés à l'envoi efficace de tableaux via la méthode POST dans Express
P粉207969787
P粉207969787 2023-09-16 21:10:57
0
1
552

Je suis nouveau ici et j'apprends Express, et même si je pense être sur la bonne voie, j'ai actuellement quelques problèmes avec mon POSTapproche. La situation que je rencontre actuellement est la suivante :

  • Lorsque j'envoie une requête POST请求时,我收到一个空对象{} vers un fichier http, je reçois un objet vide {}. De plus, j'ai testé via le client Thunder, mais j'ai reçu une erreur 400 ou une autre erreur http.

  • Content-Type: application/jsonne fonctionne pas sous les chemins dans les fichiers http.

  • GET la méthode fonctionne bien.

  • Voici le code que j'ai utilisé :

const express = require('express');
const { stories } = require('../data/books.js').infoBooks;

const routerStories = express.Router();
routerStories.use(express.json());

routerStories.post('/', (req, res) => {
    const newBook = req.body;
    stories.push(newBook);
    res.send(JSON.stringify(stories));  
});

J'essaie de comprendre depuis quelques jours. Même si j'ai fait beaucoup de recherches, je n'arrive pas à comprendre. Veuillez donner votre point de vue et votre expérience pour pouvoir résoudre ce problème.

P粉207969787
P粉207969787

répondre à tous(1)
P粉543344381

J'ai trouvé quelques problèmes dans votre code. Je suppose que vous avez collé le code d'origine, voici donc ce que vous devez modifier.

1.) Je ne pense pas que cette ligne soit du code javascript valide, ou si c'est le cas, c'est un peu bizarre. const { stories } = require('../data/books.js').infoBooks; 如果infoBooks est un objet contenant une histoire, importez simplement l'objet

2.) Vous n'avez pas besoin de définir la route sur json car la route a cette méthode par défaut et acceptera json comme réponse valide

3.) Peut-être que vous n'utilisez pas un nom de route différent et qu'une autre route utilise le même littéral de chaîne.

Vous n'avez pas fourni suffisamment d'informations, il peut donc y avoir d'autres problèmes liés à votre utilisation du routage lui-même, mais d'après ce que vous avez publié, voici tous les problèmes que j'ai trouvés. J'espère que cela t'aides!

import {infoBooks} from "../data/books.js"
import express from "express";
const router = express.Router();

routerStories.post('/createNewBook', (req, res) =\> {
    const newBook = req.body;
    if(!newBook){
       res.status(400).json({message: "invalid arguments"})
       return
    }
    infoBooks.stories.push(newBook);
    //we don't need to set status here because by default the response will be 200
    res.json({infoBooks.stories});
    return 
})
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal