Probleme beim effizienten Senden von Arrays über die POST-Methode in Express
P粉207969787
P粉207969787 2023-09-16 21:10:57
0
1
562

Ich bin neu hier und lerne Express, und obwohl ich denke, dass ich auf dem richtigen Weg bin, habe ich derzeit einige Probleme mit meinem POSTAnsatz. Die Situation, die ich jetzt begegne, ist wie folgt:

  • Wenn ich eine POST请求时,我收到一个空对象{}-Anfrage an eine http-Datei sende, erhalte ich ein leeres Objekt {}. Außerdem habe ich über den Thunder-Client getestet, aber einen 400-Fehler oder einen anderen HTTP-Fehler erhalten.

  • Content-Type: application/jsonfunktioniert nicht unter Pfaden in http-Dateien.

  • GET Methode funktioniert gut.

  • Hier ist der Code, den ich verwendet habe:

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));  
});

Ich versuche schon seit ein paar Tagen, es herauszufinden. Obwohl ich viel recherchiert habe, komme ich einfach nicht dahinter. Bitte geben Sie Ihre Sichtweise und Erfahrung an, um dieses Problem lösen zu können.

P粉207969787
P粉207969787

Antworte allen(1)
P粉543344381

我在你的代码中发现了一些问题。我假设你粘贴了原始代码,所以这里是你需要改变的地方。

1.) 我不认为这一行是有效的javascript代码,或者如果它是的话,它有点奇怪。 const { stories } = require('../data/books.js').infoBooks; 如果infoBooks是一个包含故事的对象,只需导入该对象

2.) 你不需要将路由设置为json,因为路由默认存在该方法,并且会接受json作为有效的响应

3.) 可能你没有使用不同的路由名称,而另一个路由正在使用相同的字符串文字。

你没有提供足够的信息,所以你使用路由本身可能还有其他问题,但根据你发布的内容,这些是我发现的所有问题。希望能帮到你!

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 
})
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage