为什么使用“”快速附加对象数组名称

我正在使用Node.js / Express.js后端。 在前端,我以这种方式将一个对象传递给我的后端API。

var accountData = {"my_tags" : ["tag1", "tag2", "tag3"]} $.post("/api/submission/1", accountData, function(sucess){ console.log("success"); }); 

在后端app.js是这样设置的

 var app = express(); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.use('/', index); app.use('/api', api); 

然后在我的api

 router.post("/api/submission/:pageNumber", function (req, res) { console.log(JSON.stringify(req.body)); 

打印{“my_tags []”:[“tag1”,“tag2”,“tag3”]}

为什么Node或Express将“[]”附加到“my_tags”对象数组的名称上?

当然,当我重读我的文章时,强迫自己写这篇文章让我在2分钟后得出答案。 原来是因为我的URL编码身体分析器的扩展属性设置为false。 更改

 app.use(bodyParser.urlencoded({ extended: false })); 

在app.js中

 app.use(bodyParser.urlencoded({ extended: true })); 

停止附加“[]”到我的数组标题。 希望这会帮助别人。