suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Probleme beim effizienten Senden von Arrays über die POST-Methode in Express

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:

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粉207969787P粉207969787490 Tage vor589

Antworte allen(1)Ich werde antworten

  • P粉543344381

    P粉5433443812023-09-17 00:59:05

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

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

    Antwort
    0
  • StornierenAntwort