javascript - Node JS 向 Javascript 控制台显示不同的结果
问题描述
我已经在 Google Chrome 控制台的片段中测试了下面的代码。
输入和输出:
var values = [{"id":"1","Product":"Pen","Qty":"10"},{"id":"2","Product":"Pencil","Qty":"20"}]
for(var key in values) {
var val = values[key];
console.log(val);
}
使用节点 JS
我已经安装了一个名为body-parser
. 从 Node JS 访问 HTML 内容。
// Get HTML values
var {values} = req.body;
// Iterate through the dictionary
for(var key in values) {
var value = values[key];
console.log(value);
}
这是 CMD 上的实际输出 - 与 Google Chrome 控制台非常不同。我很困惑为什么它不同。
[
{
"
i
d
"
:
"
1
"
,
"
P
r
o
d
u
c
t
"
:
"
P
e
n
"
,
"
Q
t
y
"
:
"
1
0
"
}
,
{
"
i
d
"
:
"
2
"
,
"
P
r
o
d
u
c
t
"
:
"
P
e
n
c
i
l
"
,
"
Q
t
y
"
:
"
2
0
"
}
]
如何获得与 Javascript 控制台相同的输出?我想访问它id
和其他内容。
它是相同的语言(Javascript)但输出不同,这有什么意义?是因为使用了 Node JS 吗?
编辑:
Use var {values} = JSON.parse(req.body);
我收到此错误:
TypeError: Cannot convert object to primitive value
解决方案
req.body.values
,根据您的评论,是一个字符串。JSON.parse
使用如下方式解析它:
// Get HTML values
var values = JSON.parse(req.body.values);
// Iterate through the dictionary
for(var key in values) {
var value = values[key];
console.log(value);
}