为什么快速附加对象数组名称为“[]”

时间:2017-08-06 19:58:27

标签: javascript node.js express

我正在使用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”对象数组的名称?

1 个答案:

答案 0 :(得分:0)

当然,当我重新阅读帖子时,强迫自己写这篇文章会让我在2分钟后找到答案。原来是因为我的url编码的body解析器的扩展属性设置为false。改变

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

在app.js中

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

停止向我的数组标题追加“[]”。希望这会帮助其他人。