Вы всегда можете создать свое собственное промежуточное ПО для express, промежуточное ПО сгладит ваш объект тела
от:
{
"data":{
"local_db_path":"",
"source_type":"google",
"source_id":"ChIJTTuarbcFGTkRRJn1sPgP0SU",
"short_code":"VvsyTY",
"box_ids":[527],
"text_content":""
}
}
до:
{
"local_db_path": "",
"source_type": "google",
"source_id": "ChIJTTuarbcFGTkRRJn1sPgP0SU",
"short_code": "VvsyTY",
"box_ids": [
527
],
"text_content": ""
}
Промежуточное программное обеспечение
function flattenBodyData(req, res, next) {
req.body = req.body.data ? req.body.data : {};
next();
}
Использование:
router.post(
'/post/create-quick-post',
flattenBodyData, // Here, before call createPostRules
createPostRules,
PostController.createPost,
);
Но в следующем обработчике, как PostController.createPost
. Если вы хотите получить source_type
из тела, синтаксис будет req.body.source_type
вместо req.body.data.source_type
У меня есть предложение, если ваше тело сообщения имеет только свойство data
, просто "сгладьте" его со стороны клиента.