node.js(八 --- express)
EXPRESS
重要的模块
body-parser: node.js中间件,用于处理JSON,Text和URL编码的数据;
cookie-parser:这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象;
multer: node.js中间件,用于处理enctype='multipart/form-data'(设置表单的MME编码)的表单数据;
请求和响应
即request和response对象来处理请求和响应的数据;
requset对象:
表示HTTP请求,包含了请求查询字符串,参数,内容,HTTP头部等属性。
属性:
1、req.app:当callback为外部文件时,用req.app访问express的实例;
2、req.baseUrl: 获取路由当前安装的URL路径;
3、req.body/req.cookies:获取请求体/Cookie;
4、req.fresh/req.state:判断请求是否还[新鲜];
5、req.hostname/req.ip:获取主机名和IP地址;
6、req.originalUrl: 获取原始请求Url;
7、req.params:获取路由的parameters;
8、req.path: 获取请求路径;
9、req.protocol: 获取协议类型;
10、req.query: 获取URL的查询参数;
11、req.route: 获取当前匹配的路由;
12、req.subdomains:获取子域名;
13、req.accepts(): 检查可接受的请求的文档类型;
14、req.acceptsCharsets/req.acceptsEncodings/req.acceptslanguages: 返回指定字符集的第一个可接受字符编码;
15、req.get(): 获取指定的HTTP请求头;
16、req.is(): 判断请求头Content-Type的MME类型;
response对象:
表示HTTP响应,即在接收到请求时向客户端发送的HTTP响应数据;
属性:
1、res.app: 同req.app一样;
2、res.append(): 追加指定的HTTP头;
3、res.set():在res.append()后将重置之前设置的头;
4、res.cookie(name,value,options): 设置Cookie;
5、option: domain/expires/httpOnly/maxAge/path/secure/signed;
6、res.clearCookie(): 清除Cookie;
7、res.download(): 传送指定路径的文件;
8、res.get(): 返回指定的HTTP头;
9、res.jsonp(): 传送JSONP响应;
10、res.json(): 传送JSON响应;
11、res.location(): 只设置响应的Location HTTP头,不设置状态码或者close response;
12、res.redirect(): 设置响应的Location HTTP头,并设置状态码302;
13、res.render(view, locals, callback): 渲染一个view,同时向callback传递渲染后的字符串,如果在渲染过程中有错误发生next(err)将会被自动调用。callback将会被传入一个可能发生的错误以及渲染后的页面,这样就不会自动输出了;
14、res.send(): 传送HTTP响应;
15、res.sendFile(path,options,fn): 传送指定路径的文件-会自动根据文件extension设定Content-Type;
16、res.set(): 设置HTTP头,传入object可以一次设置多个头;
17、res.status(): 设置HTTP状态码;
18、res.type(): 设置Content-TYpe的MIME类型;
静态文件
Express提供了内置的中间件express.static来设置静态文件;
例如: app.use(express.static('pulic')); 然后我们就可以在public目录下放置图片,css,js等静态内容了
REST
REST是表属性状态传递(英文:Representational State Transter, 简称REST); 表述性状态转移是一组架构约束条件和原则,满足这些约束条件和原则的应用程序或设计就是RESTful。但是需要注意的是,REST就是设计风格而不是一种标准;REST通常使用JSON数据格式。