55 votes

Qu'est-ce que l'app.utilisation(bodyParser.json())` faire?

Pour:

bodyParser.urlencoded({extended: ...})

ma recherche m'indique que si extended: true, alors vous pouvez analyser des objets imbriqués, ou plus généralement tout type. Toutefois, si vous définissez extended: false, alors vous ne pouvez analyser des chaînes ou des tableaux. Mais ce n' ...

app.use(bodyParser.json())

signifie exactement? Je veux dire, oui... je sais que les docs mentionner qu'il analyse json. Mais je suis encore confus. J'ai remarqué que les applications qui ensemble extended: true ne PAS utiliser bodyParser.json() à tous. Mais les applications qu' extended: false ont tendance à utiliser des bodyParser.json(). Pourquoi est-ce? À la fin de la journée, les deux applications sont en mesure d'analyser json.

Deuxièmement, quel est l'approche recommandée?

90voto

Grateful Points 2745

Bon, contrairement à ce que je pensait, en outre, la recherche montre que l' extended: true et app.use(bodyParser.json()) peuvent être utilisés ensemble. Il n'est donc pas seulement extended: false qui l'utilise. L'énoncé app.use(bodyParser.json()) à être utilisé indépendamment, si vous définissez étendu true ou false.

  • app.use(bodyParser.json()) essentiellement indique au système que vous voulez json à être utilisé.

  • bodyParser.urlencoded({extended: ...}) raconte essentiellement le système si vous souhaitez utiliser un algorithme simple pour shallow parsing (faux) ou algorithme complexe de profondeur de l'analyse qui peut traiter avec des objets imbriqués (c'est à dire vrai).

Jetez un oeil à la doc (c'est à dire https://expressjs.com/en/guide/migrating-4.html) pour l'exemple.

7voto

trincot Points 10112

URL de codage et encodage JSON à la fois permettre de convertir un (nested) de s'opposer à la chaîne, mais le format est différent. Une URL de la chaîne codée est en général pas une chaîne JSON valide.

Une application peut utiliser une méthode de codage, et un autre de l'autre. Tant qu'ils ne mélange pas les deux, ça va fonctionner.

5voto

Malatesh Patil Points 1468

bodyParser.json retourne middleware que seule analyse json. Cet analyseur accepte l'encodage Unicode du corps et prend en charge automatique de l'inflation de gzip et deflate encodages.

Un nouveau corps de l'objet contenant l'analyse des données est renseignée sur l'objet de la requête après le middleware (c'est à dire req.corps).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X