简体   繁体   English

我从快递中得到未定义。 为什么 req.body 显示空的 object {}?

[英]I am getting undefined from express. Why req.body is showing empty object {}?

This is noob question but I am new to it.这是菜鸟问题,但我是新手。 Req.body is undefined. Req.body 未定义。 I tried without body-我试过没有身体-

parser and with body-parser, I keep getting the same result I tried all solutions解析器和正文解析器,我不断得到相同的结果,我尝试了所有解决方案

available in StackOverflow but I keep getting the same result在 StackOverflow 中可用,但我一直得到相同的结果

    <script>
        document.addEventListener("DOMContentLoaded", () => {
            document.getElementById('send').addEventListener('click', (e) => {
                var message = { name: document.getElementById('name').value, message: document.getElementById('message').value }
                postMessages(message)
            })
            getMessages()

        });
        function addMessages(message) {
            const ele = document.getElementById('messages')
            const h4 = document.createElement('h4')
            const p = document.createElement('p')
            h4.textContent = `${message.name}`
            p.textContent = `${message.message}`
            ele.append(h4, p)
        }
        function postMessages(message) {
            const Url = "http://localhost:3000/messages"
            fetch(Url, {
                method: 'POST',
                body: message,
            })
        }
    </script>
</body>
</html>
var express = require('express')
var bodyParser = require('body-parser')
var app = express()

app.use(express.static(__dirname))
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: false }))
var messages = [
    { name: "Tim", message: "Hi" },
    { name: "Jane", message: "Hello" }
]
app.post('/messages', (req, res) => {
    console.log(req.body)
    messages.push(req.body)
    res.sendStatus(200)
})

You need to change your fetch function and first JSON.strindify your message and then add correct headers:您需要更改您的 fetch function 和第一个JSON.strindify您的消息,然后添加正确的标题:

function postMessages(message) {
        const Url = "http://localhost:3000/messages"
        fetch(Url, {
            method: 'POST',
            headers: {'Content-Type': 'application/json'},
            body: JSON.stringify(message),
        })
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM