背景:原生HTTP在某些方面表现不足满足我们的需求,需要使用框架来加快开发效率,框架的目的就是提高效率,让我们的代码更加高度统一。
Express中的使用art-template:
安装:npm install --save art-template
npm install --save express-art-template
配置:app.engine('art',require('express-art-template'))
使用:app.get('/',function(req.res){
//express默认会去项目中的views目录查找
res.render('index.html');
})
- express为response相应对象提供了一个方法:render;
- redner方法默认不可以使用,但是配置了模板引擎就可以使用;
- res.render('html模板名',{模板数据})——第一个参数不能写路径,默认去views目录下查找
- 如果需要修改默认的views视图渲染目录,可以
app.set('views',目录路径)
express配置post表单请求:
安装:parser
npm install --save body-parser
配置body-parser中间件(插件),专门用来解析表单post请求体;
var bodyParser=require('body-parser')//引包
app.use(bodyParser.urlencoded({extended:false}))//配置(只要加了这个配置,res就会多出来一个属性:body)
app.use(bodyParser.json())
//可以通过res.body来获取表单请求的数据
express获取GET请求表单:
内置了API,可以通过req.query来获取
用express做路由模块的提取:
1.创建一个路由容器
var router=express.Router();
2.把路由挂载到router容器中
(把请求路径挂载router的后面)
3.把router导出
modules.router=router;
最后在哪个文件用,就要把router挂载到哪那一个服务中
app.use('router')
Note:挂载路由要在模板配置和插件配置时之后
express中使用模块化操作:
/** app.js 入门模块 * 职责: * 创建服务 * 做一些服务相关配置 * 模板引擎 * body-parser 解析表单 post 请求体 * 提供静态资源服务 * 挂载路由 * 监听端口启动服务
* router.js 路由模块 * 职责: * 处理路由 * 根据不同的请求方法+请求路径设置具体的请求处理函数 * 模块职责要单一,不要乱写 * 我们划分模块的目的就是为了增强项目代码的可维护性 * 提升开发效率 */