3 ответов:
методы идентичны при передаче объекта или массива, но
res.json()также преобразует не-объекты, такие какnullиundefined, которые не являются допустимыми JSON.метод также использует
json replacerиjson spacesнастройки приложения, так что вы можете отформатировать JSON с большим количеством опций. Эти параметры задаются следующим образом:app.set('json spaces', 2); app.set('json replacer', replacer);и прошел к
JSON.stringify()вот так:JSON.stringify(value, replacer, spacing); // value: object to format // replacer: rules for transforming properties encountered during stringifying // spacing: the number of spaces for indentationэтот код
res.json()метод, который метод отправки не делает есть:var app = this.app; var replacer = app.get('json replacer'); var spaces = app.get('json spaces'); var body = JSON.stringify(obj, replacer, spaces);метод заканчивается как
res.send()в итоге:this.charset = this.charset || 'utf-8'; this.get('Content-Type') || this.set('Content-Type', 'application/json'); return this.send(body);
res.jsonв конце концов звонитres.send, но перед этим он:
- уважает
json spacesиjson replacerнастройки приложения- гарантирует, что ответ будет иметь кодировку utf8 и тип контента application/json
просмотр отправленных заголовков...
res. send использует content-type: text / html
res. json использует content-type: application / json
Comments