【问题标题】:How to use Object.values on array in req.body in Node.js?如何在 Node.js 的 req.body 中的数组上使用 Object.values?
【发布时间】:2021-05-18 09:15:18
【问题描述】:

我在 Vue.js 和 Node.js 中创建应用程序。我将数组发送到后端,其中的键是 id 号:

当我在前端使用它时:

console.log(Object.keys(item)[2])
console.log(Object.values(item)[2])

它显示正确的值:

当我在后端使用相同的方法时:

router.post('/post', (req, res) => {
  let data = req.body;
console.log(Object.keys(data)[2])
console.log(Object.values(data)[2])
});

我得到未定义的值。

如何在后端正确显示这些数据?

编辑:

trans.service.js:

    static async addTrans(item) {
        console.log(item)
        console.log(Object.keys(item)[2])
        console.log(Object.values(item)[2])
        const res = await api.post('translation/post', item);
        try {
            return res.data;
        } catch (err) {
            return err;
        }
    }

来自控制台日志的项目值:

[
60a2381cbcecaa11346bd7c2: ""
60a23815bcecaa11346bd7c1: "nnn"
609e5e1e6f19442da0fe5b99: "bbbddd"
609e5e166f19442da0fe5b98: ""
]

【问题讨论】:

  • 你能先通过控制台记录你的 req.body 并检查记录的内容吗?
  • @Mayur 使用 console.log(req.body) 我明白了:[]
  • 那么您能否验证您是否将数据作为正文的一部分正确发送到发布请求
  • 这个问题的第一张数据图片是请求中发送内容的控制台日志
  • 你能复制trans.service.js文件中的sn-p吗,我认为只有在发布请求时才会出现问题

标签: javascript node.js arrays vue.js


【解决方案1】:

如果你使用express作为服务器,那么要读取你需要添加的JSON数据

app.use(bodyParser.json())

形成 npm 包 https://www.npmjs.com/package/body-parser

Json 编码不是 express 的默认值。

还可以尝试检查一下,您将正确的 content-type 标头从浏览器传递到节点,它应该是 'application/json',您可以在浏览器的网络选项卡中检查。

【讨论】:

  • 我使用 express 而不是我使用的正文解析器:app.use(express.urlencoded({ extended: true }));app.use(express.json())。在这种情况下是否还需要正文解析器?
  • 如果您使用的是express.json(),则不需要bodyParser.json(),请检查网络选项卡,如果数据是从网络调用发送的?,我希望它不是GET请求,req。 body 适用于 POST 等
  • 这个问题的第一个数据图像是前端请求中发送内容的 console.log,但在后端使用 console.log(req.body) 后,我得到了这个:[]
  • 我认为您可能需要深入研究const res = await api.post('translation/post', item); 原因是,它可能会将数组字符串化为空。您可以检查网络选项卡吗,在发送请求时,这将验证问题出在前端还是后端,console.log() 可能在 UI 中没有帮助,请检查网络日志
【解决方案2】:

问题是在前端我将这个项目声明为数组,它应该是一个对象。我将数组更改为一个对象,它起作用了。

【讨论】:

    猜你喜欢
    • 2017-03-18
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 2022-07-10
    • 2017-09-10
    • 1970-01-01
    相关资源
    最近更新 更多