Les méthodes sont identiques lorsqu'un objet ou un tableau est passé, mais res.json()
convertira également les non-objets, tels que les fichiers null
y undefined
qui ne sont pas des JSON valides.
La méthode utilise également le json replacer
y json spaces
les paramètres de l'application, afin que vous puissiez formater JSON avec plus d'options. Ces options sont définies comme suit :
app.set('json spaces', 2);
app.set('json replacer', replacer);
Et passé à un JSON.stringify()
comme ça :
JSON.stringify(value, replacer, spacing);
// value: object to format
// replacer: rules for transforming properties encountered during stringifying
// spacing: the number of spaces for indentation
C'est le code dans le res.json()
que la méthode d'envoi n'a pas :
var app = this.app;
var replacer = app.get('json replacer');
var spaces = app.get('json spaces');
var body = JSON.stringify(obj, replacer, spaces);
La méthode se termine par un res.send()
à la fin :
this.charset = this.charset || 'utf-8';
this.get('Content-Type') || this.set('Content-Type', 'application/json');
return this.send(body);
90 votes
Prenez le temps de noter que les personnes qui postent des réponses sont allées sur Github et ont lu le code source. C'est une bonne habitude à prendre. La vérité se trouve dans la source.
39 votes
@PeterLyons Je suis d'accord pour dire que c'est une bonne habitude, mais vouliez-vous dire que Ram aurait dû regarder la source au lieu de poser la question ? Cela ne va-t-il pas à l'encontre de l'objectif de ce site ? La présence de cette question, avec des réponses renvoyant à une bonne source (La Source !) est utile.
5 votes
Oui, apprendre à un homme à pêcher et tout ça.
83 votes
Lorsqu'on nous dit "RTFS" (Read The Source), cela signifie en fait que la documentation ne communique pas ce qu'elle devrait. Oui, le fait d'avoir la source nous permet de la vérifier, mais on ne devrait pas avoir besoin de l'atteindre, sauf dans des cas obscurs. Toutes ces fonctionnalités d'Express sont vraiment géniales, mais la documentation n'est pas à la hauteur, et de loin. SO est rempli de questions sur les fonctionnalités d'Express que les gens ne peuvent pas comprendre à partir de la documentation (cela m'arrive).
4 votes
Parfois, la lecture de la source n'est pas suffisante et comme une bonne explication peut découler des réponses, cela garantira la meilleure compréhension du concept concerné. Certaines personnes lisent simplement la source et comprennent, mais qu'en est-il des débutants qui ne sont pas nécessairement familiers avec le javascript ? Pensez-y.
0 votes
@PeterLyons mais poser la question ici plutôt gagne des points internet ;) La question a 79 upvotes au moment de l'écriture.
1 votes
Je suis d'accord pour dire que les documents sont médiocres s'ils n'expliquent pas les bases comme celles-ci, et nous devrions tous arrêter de harceler les nouveaux ingénieurs pour qu'ils "lisent la source" jusqu'à ce qu'ils soient prêts à le faire
1 votes
En tant que jeune développeur, j'ai trouvé le commentaire de @PeterLyons très utile. Il est utile de noter qu'il existe une autre option lorsque je suis confus - lire le code source. J'ai vu des gens faire cela une ou deux fois, mais je ne l'avais pas encore intégré dans mes étapes de débogage. Maintenant, je le ferai. Son commentaire n'enlève rien à la génialité de l'OS, mais aide plutôt les nouveaux codeurs à réaliser qu'il existe un autre outil à ajouter à leur panoplie :-)