为什么使用“”快速附加对象数组名称
我正在使用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 }));
停止附加“[]”到我的数组标题。 希望这会帮助别人。