[TOC]
# 响应
响应对象可以向客户端发送响应,并终止请求。若没有从路由处理函数调用这些方法,则客户端请求将保持挂起状态。其有以下这些方法:
1. **res.status()** 设置状态代码( Set status code.)
2. **res.type()** 设定MIME类型(Set MIME type.)
3. **res.send()** 发送各种类型的响应(Send a response of various types.)
4. **res.json({data})** 自动设置响应头(Send a JSON response.)
5. **res.render()** 渲染模板(Render a view template.)
6. **res.sendStatus()** 设置响应状态代码,并将其字符串表示形式作为响应体发送。
7. **res.sendFile()** 以八位字节流的形式发送文件。
8. **res.end()** 终结响应处理流程。
9. **res.redirect()** 重定向请求。(Redirect a request.)
10. **res.download()** 提示下载文件。
11. **res.jsonp()** 发送一个支持 JSONP 的 JSON 格式的响应。(Send a JSON response with JSONP support.)
响应 JSON 格式数据
```
// 响应 JSON 格式数据
const express = require('express');
const app = express();
app.get('/', (req, res) => {
let jsonData = {name : 'xx', age : 11};
res.json(jsonData);//将对象 jsonData 转换为 json 格式
});
app.listen(8888, () => {
console.log('Example app listening on port 8888!');
});
```
文件下载
```
// 文件位置 myapp/a.txt
const path = require('path');
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.download(path.join(__dirname, 'a.txt'));//被下载文件存放路径
});
app.listen(8888, () => {
console.log('Example app listening on port 8888!');
});
```