【发布时间】:2021-04-12 03:44:48
【问题描述】:
我想澄清的是,当我的 express 应用程序中的 console.logging req.body 时。当我期待一个 JSON 对象时,我最终得到一个缓冲区/字符串或某种十六进制。我正在使用邮递员发送原始 json 正文。 以下是源代码和终端/邮递员结果的一些视觉效果。
const express = require('express');
const bodyParser = require('body-parser');
const { randomBytes } = require('crypto');
const app = express();
app.use(express.raw({type: "application/json"}));
app.use(express.json({strict: false}));
app.use(express.urlencoded({extended: false}));
const posts = {};
app.get('/posts', (req, res) => {
res.send(posts);
});
app.post('/posts', (req, res) => {
const id = randomBytes(4).toString('hex');
const { title } = req.body;
console.log(req.body)
posts[id] = {
id,
title: title
};
res.status(201).send(posts[id]);
});
app.listen(4000, () => {
console.log('Listening on 4000');
});
【问题讨论】:
-
欢迎来到stackoverflow。当代码是您问题的一部分时,它应该作为文本而不是图像粘贴到您的问题中。这有很多很好的理由:它可以被搜索索引,回答的人可以将粘贴部分复制到他们的答案中而无需重新输入,对于那些有视力问题的人来说更容易访问等等......请解决您的问题并粘贴将您的问题编码为文本并将其格式化为适当的代码。
-
既然您是新来的,我已经给您提供了查看您的图像并发布答案的礼貌。请修复此问题,以将您的代码显示为文本,并按照正确的程序处理未来的问题。
-
请不要只是发布和消失。如果您在第一个小时内没有多次回访,那么您将错过与那些试图提供帮助的人互动的最佳机会。至于我,我将有一段时间不再在线,所以希望我的回答足够,因为我们错过了讨论答案中的任何内容是否对您不明确的机会。
-
非常感谢!我现在正在检查答案并修复帖子。从东部时间上午 12 点开始,我在发帖时就睡着了。