Node.js Запрос POST возвращается как «{}»

#javascript #node.js

#javascript #node.js

Вопрос:

Начал использовать node.js и пытаюсь использовать запрос POST с выборкой, но когда я его запускаю, он просто возвращается как {} в коде на стороне сервера консоли ->

 const express = require("express")
const app = express()



app.listen(3000, () => console.log("listening at 3000"))
app.use(express.static("public"))
app.use(express.json())



app.post("/api", (request,response) => {
    console.log("Made the POST")
    console.log(request.body)
})
  

выборка ->

 async function submitValues(){
    const start = document.getElementById("start").value;
    const end = document.getElementById("end").value
    // console.log(start,end)
    // findShortestPath(graph, start, end)
    data = {start, end}
    
    options = {
        method: "POST",
        headers: {
            "Content-Type":"applcation/json"
        },
        body: JSON.stringify(data),
        
    }
    
    await fetch("/api", options);
    
    
}
  

Это то, что я написал, но просто не могу понять это

Комментарии:

1. его application/json"

2. что вы получаете , когда вы console.log(request) ?

3. есть ли у вас другие промежуточные программы, подключенные после .post?

4. ваш post обратный вызов api ничего не возвращает, и вам нужен анализатор тела

5. ему не нужен анализатор тела, он уже использует встроенный анализатор тела из express express.json()

Ответ №1:

Сначала вам нужно установить Node.js промежуточное программное обеспечение для разбора тела:

 $ npm install --save body-parser
  

и затем:

 const bodyParser = require('body-parser');

app.use(bodyParser.json());
  

Комментарии:

1. ему нужен анализатор тела, поскольку он регистрирует «request.body», почему вы дали мне -1 🙁

Ответ №2:

 app.post("/api", (request,response) => {
    console.log("Made the POST")
    console.log(request.body)
})
  

Этот метод ничего не возвращает, поэтому не уверен, почему вы удивлены, что этот API ничего не возвращает.