mirror of
https://github.com/expressjs/expressjs.com.git
synced 2026-02-21 19:41:33 +00:00
56 lines
1.5 KiB
Plaintext
56 lines
1.5 KiB
Plaintext
section
|
|
h3(id='res.format') res.format(object)
|
|
|
|
p.
|
|
Performs content-negotiation on the request Accept header
|
|
field when present. This method uses <code>req.accepted</code>, an array of
|
|
acceptable types ordered by their quality values, otherwise the
|
|
first callback is invoked. When no match is performed the server
|
|
responds with 406 "Not Acceptable", or invokes the <code>default</code>
|
|
callback.
|
|
|
|
p.
|
|
The Content-Type is set for you when a callback is selected,
|
|
however you may alter this within the callback using <code>res.set()</code>
|
|
or <code>res.type()</code> etcetera.
|
|
|
|
p.
|
|
The following example would respond with <code>{ "message": "hey" }</code>
|
|
when the Accept header field is set to "application/json" or "*/json",
|
|
however if "*/*" is given then "hey" will be the response.
|
|
|
|
+js.
|
|
res.format({
|
|
'text/plain': function(){
|
|
res.send('hey');
|
|
},
|
|
|
|
'text/html': function(){
|
|
res.send('<p>hey</p>');
|
|
},
|
|
|
|
'appliation/json': function(){
|
|
res.send({ message: 'hey' });
|
|
}
|
|
});
|
|
|
|
p.
|
|
In addition to canonicalized MIME types you may also
|
|
use extnames mapped to these types, providing a slightly
|
|
less verbose implementation:
|
|
|
|
+js.
|
|
res.format({
|
|
text: function(){
|
|
res.send('hey');
|
|
},
|
|
|
|
html: function(){
|
|
res.send('<p>hey</p>');
|
|
},
|
|
|
|
json: function(){
|
|
res.send({ message: 'hey' });
|
|
}
|
|
});
|
|
|