Isu dengan menghantar tatasusunan dengan cekap melalui kaedah POST dalam Express
P粉207969787
P粉207969787 2023-09-16 21:10:57
0
1
493

Saya baru di sini dan belajar Express, dan walaupun saya rasa saya berada di landasan yang betul, saya sedang menghadapi beberapa masalah dengan POST pendekatan saya. Situasi yang saya hadapi sekarang adalah seperti berikut:

  • Apabila saya menghantar permintaan POST请求时,我收到一个空对象{} ke fail http, saya menerima objek kosong {}. Selain itu, saya menguji melalui klien Thunder, tetapi saya menerima ralat 400 atau ralat http lain.

  • Content-Type: application/jsontidak berfungsi di bawah laluan dalam fail http.

  • Kaedah
  • GET berfungsi dengan baik.

  • Ini kod yang saya gunakan:

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

Saya telah cuba memikirkannya selama beberapa hari. Walaupun saya telah melakukan banyak kajian, saya tidak dapat memikirkannya. Sila berikan perspektif dan pengalaman anda untuk dapat menyelesaikan masalah ini.

P粉207969787
P粉207969787

membalas semua(1)
P粉543344381

Saya menemui beberapa isu dalam kod anda. Saya mengandaikan anda menampal kod asal, jadi inilah perkara yang anda perlu ubah.

1.) Saya tidak fikir baris ini adalah kod javascript yang sah, atau jika ya, ia agak pelik. const { stories } = require('../data/books.js').infoBooks; 如果infoBooks ialah objek yang mengandungi cerita, hanya import objek itu

2.) Anda tidak perlu menetapkan laluan kepada json kerana laluan mempunyai kaedah ini secara lalai dan akan menerima json sebagai respons yang sah

3.) Mungkin anda tidak menggunakan nama laluan yang berbeza dan laluan lain menggunakan literal rentetan yang sama.

Anda tidak memberikan maklumat yang mencukupi, jadi mungkin terdapat isu lain dengan penggunaan penghalaan anda sendiri, tetapi berdasarkan apa yang anda siarkan, ini semua isu yang saya temui. harap ini membantu!

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 
})
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!