После прочтения обоих я все еще не могу понять, могут ли быть языковые различия, но, пожалуйста, помогите уточнить.
express.urlencoded()
Возвращает промежуточное ПО, которое выполняет только синтаксический анализurlencoded тела и только смотрит на запросы, где заголовок Content-Type соответствует опции типа.Этот синтаксический анализатор принимает только кодировку тела UTF-8 и поддерживает автоматическое наложение кодировок gzip и deflate.
, а также
и body-parser
middleware
Анализируйте входящие тела запросов в промежуточном программном обеспечении перед вашими обработчиками, доступными в свойстве req.body.
Я понимаю, что express.urlencoded
основан на Nodejs body-parser
.и на обеих страницах
https://expressjs.com/en/api.html#express.urlencoded
и
https://expressjs.com/en/resources/middleware/body-parser.html
даже говорится одно и то же предупреждение:
Поскольку форма req.body основана на вводе, управляемом пользователем, все свойства и значения в этом объекте не заслуживают доверия и должны быть проверены перед доверием.Например, req.body.foo.toString () может завершиться с ошибкой несколькими способами, например, foo может отсутствовать или не может быть строкой, а toString не может быть функцией, а вместо этого строкой или другим пользовательским вводом.
, но в итоге оба дают мне req.body
с параметрами, отправляемыми в объекте body запросов.так почему я должен использовать body-parser (который я должен установить отдельно) вместо того, чтобы всегда использовать express.urlencoded()
Я знаю, что это не проблема кода, но я заранее благодарен всем, кто может перечислить доОсновные отличия.