express框架初探

一、构建express项目
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来依赖这两个模块
  1. var bodyParser =require('body-parser');
  2. var multer =require('multer');
  3. ......
  4. app.use(bodyParser.json());
  5. app.use(bodyParser.urlencoded({ extended:true}));
  6. app.use(multer());
 

三、中间件(middleware)
       中间件(middleware)就是处理HTTP请求的函数,用来完成各种特定的任务,比如检查用户是否登录、分析数据、以及其他在需要最终将数据发送给用户之前完成的任务。 它最大的特点就是,一个中间件处理完,可以把相应数据再传递给下一个中间件。    
function Middleware ( request ,  response , next ) {
   next ( '出错了!' );
}
如果用all方法来定义中间件,就能过滤任何请求了

use是express调用中间件的方法,它返回一个函数。

格式:app.use([path], function(request, response, next){});


注意:如果使用 了get或者是all方法来处理请求的话就不会再经过use了


四、在express里面使用模板引擎
在express里面默认使用两种模板引擎ejs和jade

首先是在项目目录下通过npm install ejs或者是npm install jade来安装不同的模板引擎

然后是使用app.set("view engine","ejs");//设置使用ejs的模板引擎渲染后缀名为ejs的文件
要让能够渲染其他类型的文件比如html后缀的文件
  1. / 修改模板文件的后缀名为html
  2. app.set('view engine','html');
  3. // 运行ejs模块
  4. app.engine('.html',require('ejs').__express );

五、在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来跳转到相应的页面

七、页面session控制
使用express-session模块来对应用的session进行相应的控制
首先是npm install express-session
然后是var session=require("express-session");
配置session
  1. app.use(session({
  2.     secret:'secret',
  3.     resave:true,
  4.     saveUninitialized:false,
  5.     cookie:{
  6.         maxAge:1000*60*10//过期时间设置(单位毫秒)
  7.     }
  8. }));

使用中间件
  1. app.use(function(req, res,next){
  2. res.locals.user = req.session.user;
  3. var err = req.session.error;
  4. res.locals.message ='';
  5. if(err) res.locals.message ='<div style="margin-bottom: 20px;color:red;">'+ err +'</div>';
  6. next();
  7. });

注意,中间件的放置顺序很重要,等同于执行顺序。而且,中间件必须放在HTTP动词方法之前,否则不会执行。

八、加入布局模板
在express3.x以上的版本中不在支持使用layout的布局模板的功能,要想使用该功能可以引入express-partials这个依赖库

在app.js里面通过
var partials = require("partials");

app.use(partials());

然后再要调用模板的时候使用

res.render("index",{title:"",layout:"layout.html"});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值