一、构建express项目
三、中间件(middleware)
next ( '出错了!' );
}
如果用all方法来定义中间件,就能过滤任何请求了
四、在express里面使用模板引擎
五、在express中指定文件路径
六、访问视图
七、页面session控制
使用中间件
八、加入布局模板
1、通过npm install express来安装express框架
2、通过require来依赖一个express框架
var express=reqiure("express");
var app=new express();//通过构造函数来构造一个express框架
app.listen("80");//监听一个端口
二、处理请求
1、通过app.get(path,function(request,response){});来处理get请求
2、通过app.all("*",function(req,res){})可以处理全部请求
注:request是表示来至客户端的请求对象,而response是服务器的响应对象
在处理请求时可以通过require.query.参数来获取客户端传过来的参数,query是一个可获取客户端get请求路径参数的对象属性,包含着被解析过的请求参数对象,默认为{}。
如:地址为/search?n=1;可以使用require.query.n来获取n的值
或者通过param属性来获取传到后台的参数,或者通过路由来区分地址
其获取参数的方法为require.param("参数")
如:/search/:name就能使用require.param("name")来获取name的值
也可以通过require.params.参数来获取请求地址中的参数
如:/search/:name/:id就能通过require.params.id和.name来获取相应的参数
3、post请求
通过app.post()即可处理客户端的post请求
解析客户端通过post请求传递过来的参数时,可以使用require.body即通过body对象来解析传递过来的参数
要使用body来接收post请求的消息需要先安装和引用express的两个中间件body-parser和multer
首先使用
npm install body-parser和npm install multer来安装两个模块
在使用require来依赖这两个模块
- var bodyParser =require('body-parser');
- var multer =require('multer');
- ......
- app.use(bodyParser.json());
- app.use(bodyParser.urlencoded({ extended:true}));
- app.use(multer());
中间件(middleware)就是处理HTTP请求的函数,用来完成各种特定的任务,比如检查用户是否登录、分析数据、以及其他在需要最终将数据发送给用户之前完成的任务。 它最大的特点就是,一个中间件处理完,可以把相应数据再传递给下一个中间件。
function
Middleware
(
request
,
response
,
next
)
{next ( '出错了!' );
}
如果用all方法来定义中间件,就能过滤任何请求了
use是express调用中间件的方法,它返回一个函数。
格式:app.use([path], function(request, response, next){});
注意:如果使用 了get或者是all方法来处理请求的话就不会再经过use了
在express里面默认使用两种模板引擎ejs和jade
首先是在项目目录下通过npm install ejs或者是npm install jade来安装不同的模板引擎
然后是使用app.set("view engine","ejs");//设置使用ejs的模板引擎渲染后缀名为ejs的文件
要让能够渲染其他类型的文件比如html后缀的文件
- / 修改模板文件的后缀名为html
- app.set('view engine','html');
- // 运行ejs模块
- app.engine('.html',require('ejs').__express );
通过
express.use(express.static(require('path').join(_dirname,"目录名")));//指定静态文件的访问路径
express.set("views",_dirname);//指定视图页面默认为根目录下
我们要如何对网页模板进行访问呢,这就要用到res对象的render函数了。
1. render函数,对网页模板进行渲染。
2. 格式:res.render(view, [locals], callback);
3. 参数view就是模板的文件名callback用来处理返回的渲染后的字符串,options、callback可省略,在渲染模板时[locals](JSON格式)可为其模板传入变量值,在模板中就可以调用所传变量了,在后面我们会讲述具体使用方法,也可先自行使用看其效果。
页面的重定向使用的是res.
redirect来跳转到相应的页面
使用express-session模块来对应用的session进行相应的控制
首先是npm install express-session
然后是var session=require("express-session");
配置session
- app.use(session({
- secret:'secret',
- resave:true,
- saveUninitialized:false,
- cookie:{
- maxAge:1000*60*10//过期时间设置(单位毫秒)
- }
- }));
- app.use(function(req, res,next){
- res.locals.user = req.session.user;
- var err = req.session.error;
- res.locals.message ='';
- if(err) res.locals.message ='<div style="margin-bottom: 20px;color:red;">'+ err +'</div>';
- next();
- });
注意,中间件的放置顺序很重要,等同于执行顺序。而且,中间件必须放在HTTP动词方法之前,否则不会执行。
在express3.x以上的版本中不在支持使用layout的布局模板的功能,要想使用该功能可以引入express-partials这个依赖库
在app.js里面通过
var partials = require("partials");
app.use(partials());
然后再要调用模板的时候使用
res.render("index",{title:"",layout:"layout.html"});