Javascript 如何在Node.js的req.body中的数组上使用Object.values?
我正在Vue.js和Node.js中创建应用程序。我正在将阵列发送到后端,其中键是id号: 当我在前端使用它时:Javascript 如何在Node.js的req.body中的数组上使用Object.values?,javascript,node.js,arrays,vue.js,Javascript,Node.js,Arrays,Vue.js,我正在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.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: ""
]
如果您正在为服务器使用
express
,那么要读取JSON数据,您需要添加
app.use(bodyParser.json())
形成npm包
Json编码不是express的默认值
另外,请尝试检查,您正在将正确的
内容类型
标题从浏览器传递到节点,它应该是'application/json'
,您可以在浏览器的“网络”选项卡中进行检查。问题是,在前端,我将此项声明为数组,并且它应该是一个对象。我把数组改成了一个对象,它成功了。你能先控制台记录你的req.body并检查它记录了什么吗?@Mayur afrer使用console.log(req.body)
我得到了这个:[]
因此,您是否可以验证您是否将数据作为正文的一部分正确地发送到post Request。此问题中的第一个数据图像是请求中发送的内容的console.log。您是否可以复制trans.service.js文件中的代码段,我认为只有在执行post请求时才会出现一些问题,我使用express而不是body解析器:app.use(express.urlencoded({extended:true}))
和app.use(express.json())
。在这种情况下是否也需要正文解析器?如果您使用的是express.json()
,则不需要bodyParser.json()
,请检查网络选项卡,如果数据是从网络调用发送的,我希望不是GET请求,req.body与POST-etc一起工作这个问题中的第一个数据映像是前端请求中发送的内容的console.log,但是在后端使用console.log(req.body)
后,我得到的结果是:[]
我认为您可能需要深入研究const res=wait api.POST('translation/POST',item)代码>原因是,它可能正在将数组字符串化为空。您可以检查网络选项卡吗?发送请求时,这将验证问题是否与前端或后端有关,console.log()在UI中可能没有帮助,请检查网络日志