Эта дополнительная [Object: null prototype] проблема возникает в Node, когда мы console.log некоторого объекта, который имеет null prototype ...
, что просто означаетчто у объекта не будет встроенных методов ... типа => .toString () или .hasOwnProperty () и т. д. *
const obj1 = Object.create(null);
obj1['key'] = 'SomeValue' ;
console.log(obj1);
>> [Object: null prototype] { 'key' : 'SomeValue' }
const obj2 = {};
obj2['key'] = 'SomeValue' ;
console.log(obj2);
>> { 'key' : 'SomeValue' }
, когда мы устанавливаем расширенный в app.use (Параметр urlencoded {...}) для true => закодированные данные URL анализируются библиотекой qs ,
, когда мы устанавливаем значение false,он анализируется строкой запроса библиотекой ...
в библиотеке строк запросов (https://nodejs.org/api/querystring.html#querystring_querystring_parse_str_sep_eq_options)
, в нем четко указано, что
Объект, возвращаемый методом querystring.parse () , не наследуется прототипом от объекта JavaScript.Это означает, что типичные методыObject, такие как obj.toString (), obj.hasOwnProperty () и другие, не определены и не будут работать.
или, другими словами, они имеют нулевой прототип ...
, поэтому в случае {extended: false}, когда мы console.log (req.body) => вывод содержит дополнительный [Object: null prototype] в начале...
Для других отличий используйте
в чем разница между qs и строкой запроса