【问题标题】:I am getting undefined from express. Why req.body is showing empty object {}?我从快递中得到未定义。为什么 req.body 显示空对象 {}?
【发布时间】:2022-08-17 01:25:56
【问题描述】:

这是菜鸟问题,但我是新手。 Req.body 未定义。我试过没有身体-

解析器和正文解析器,我不断得到相同的结果,我尝试了所有解决方案

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

  • 您可以在浏览器开发工具中看到的实际请求正文是什么?您可以发布客户的minimal reproducible example 吗?
  • VM150:1 Uncaught (in promise) SyntaxError: Unexpected token \'O\', \"OK\" is not valid JSON
  • 为什么客户端向服务器发送错误消息?
  • 我是新手。不知道原因。
  • 你可以试试fetch(Url, { method: \'POST\', body: JSON.stringiffy(message), })吗?

标签: javascript node.js express body-parser


【解决方案1】:

您需要更改您的 fetch 功能,首先 JSON.strindify 您的消息,然后添加正确的标题:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 2020-10-19
    • 1970-01-01
    • 2021-05-28
    • 1970-01-01
    • 2020-09-25
    • 1970-01-01
    相关资源
    最近更新 更多