摘要:Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。

小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。

Express

Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。

Express路由解析

Express路由根据请求类型来处理:

路由4个基本方法:get,post,all,use 这四个方法,可以根据前台不同的请求 方式来执行 all函数能够处理所有的请求类型

 var express=require('express'); var app=express(); //接受前端发来的get请求 app.get('/list',function(req,res){     res.send('list'+req.url); }); //接受前端发来的post请求 app.post('/post',function(req,res){     res.send('post'+req.url); }); //所欲的请求都能处理 app.all('/all',function(req,res){     res.send('all'+req.url); }); //所有的请求都能处理 app.use('/use',function(req,res){     res.send('use'+req.url); });

Express路由路径处理

nodejs最主要的核心就是根据url不同路径要处理不同的流程 路由路径和请求方法一起定义了请求的端点,他可以是字符串,字符串模式或者正则表达式

(1):字符串:直接根据路径名进行精确的匹配,如:app.get('/about', function (req, res) {});

(2):字符串模式:根据 一定的协议进行路径模糊匹配

(3):正则表达式:根据正则表达式进行匹配 注意:如上路由筛选是单个路径筛选,如果是多及路径则需要使用use函数来处理 <:name>的使用方式:是模糊匹配,并在回调函数中进行数据提取

当是ejs文件

 var express=require('express'); var path=require('path'); var fs=require('fs');  var app=express(); app.use(function(req,res,next){     var rs=fs.createReadeStream(path.join(__dirname,'public',req.path,res)) }) app.set('view engine','ejs'); app.set('views',__dirname); app.get('/',function(req,res){     res.render('index',{         name:'zz',         age:6     }) }); app.listen(8090);

当是html文件需要添加两行代码

 app.set('view engine','html'); app.engine('html',require('ejs').__express);

Express中间件

中间件是一个函数,例如前面所说的get,post,all,use等,还有一个Next,主要用于web应用中处于请求响应循环流程中的中间件 Express是一个自身功能及其的简单,完全是路由和中间件构成的一个web开发框架:从本质上来说,一个Express应用就是在调用各种中间件 如果当前中间件没有终结请求-响应循环,则必须调用next()方法将控制权交给下一个中间件,否则请求就会挂起 路由句柄:提供多个回调函数(两种方式) route:使用 app.route() 创建路由路径的链式路由句柄 express.Router:使用 express.Router 类创建模块化、可挂载的路由句柄 中间件的设计逻辑:

每个路由设计顺序非常的严禁,谁先谁后必须想清楚

静态服务设计

格式:app.use(paht1,express.static(path2));

path1用于请求路径路由匹配,如果不写,则表示所有路径必须都匹配静态服务,匹配文件失败则继续走后续中间件

path2用于设定静态文件夹,此目录中所有的文件都可以通过静态文件方式访问

说明:在node.js中,所有路由匹配都是中断的:匹配逻辑是从上往下进行匹配,如果匹配成功则中断匹配,如果还需要继续,则通过next中间件进行后续匹配

get请求参数获取方式,由于get请求的参数直接在url中跟随,所以直接通过req.query的方式获取到 Post请求参数获取方式,不能直接在express中获取,必须要借助第三方的模块body-parser来获取 如果 Post请求中还涉及到文件的上传,则必须使用formidable模块来实现


Express中ejs使用

第一步引入模板引擎: app.set(“view engine”,”ejs”); 第二部通过render方法来给模板注入json数据:res.render(path,json); 注意:render寻找模板文件一般会默认在views目录下寻找,且模板后缀名为.ejs 设置模板文件路径:app.set(“views”,”路径文件夹”);


Express中的req对象和res对象

Express中的req对象和res对象和原生node.js对象不是同一个,虽然有些方法名相同

req对象常用函数和属性:

(1)req.originalUrl、req.baseUrl

(2)req.cookies、req.params、req.query

res对象常用函数和属性

(1)res.cookie()、res.clearCookie()

(2)res.send()、res.end()、json()

(3)res.status()

Express

Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。

Express路由解析

Express路由根据请求类型来处理:

路由4个基本方法:get,post,all,use 这四个方法,可以根据前台不同的请求 方式来执行 all函数能够处理所有的请求类型

 var express=require('express'); var app=express(); //接受前端发来的get请求 app.get('/list',function(req,res){     res.send('list'+req.url); }); //接受前端发来的post请求 app.post('/post',function(req,res){     res.send('post'+req.url); }); //所欲的请求都能处理 app.all('/all',function(req,res){     res.send('all'+req.url); }); //所有的请求都能处理 app.use('/use',function(req,res){     res.send('use'+req.url); });

Express路由路径处理

nodejs最主要的核心就是根据url不同路径要处理不同的流程 路由路径和请求方法一起定义了请求的端点,他可以是字符串,字符串模式或者正则表达式

(1):字符串:直接根据路径名进行精确的匹配,如:app.get('/about', function (req, res) {});

(2):字符串模式:根据 一定的协议进行路径模糊匹配

(3):正则表达式:根据正则表达式进行匹配 注意:如上路由筛选是单个路径筛选,如果是多及路径则需要使用use函数来处理 <:name>的使用方式:是模糊匹配,并在回调函数中进行数据提取

当是ejs文件

 var express=require('express'); var path=require('path'); var fs=require('fs');  var app=express(); app.use(function(req,res,next){     var rs=fs.createReadeStream(path.join(__dirname,'public',req.path,res)) }) app.set('view engine','ejs'); app.set('views',__dirname); app.get('/',function(req,res){     res.render('index',{         name:'zz',         age:6     }) }); app.listen(8090);

当是html文件需要添加两行代码

 app.set('view engine','html'); app.engine('html',require('ejs').__express);

Express中间件

中间件是一个函数,例如前面所说的get,post,all,use等,还有一个Next,主要用于web应用中处于请求响应循环流程中的中间件 Express是一个自身功能及其的简单,完全是路由和中间件构成的一个web开发框架:从本质上来说,一个Express应用就是在调用各种中间件 如果当前中间件没有终结请求-响应循环,则必须调用next()方法将控制权交给下一个中间件,否则请求就会挂起 路由句柄:提供多个回调函数(两种方式) route:使用 app.route() 创建路由路径的链式路由句柄 express.Router:使用 express.Router 类创建模块化、可挂载的路由句柄 中间件的设计逻辑:

每个路由设计顺序非常的严禁,谁先谁后必须想清楚

静态服务设计

格式:app.use(paht1,express.static(path2));

path1用于请求路径路由匹配,如果不写,则表示所有路径必须都匹配静态服务,匹配文件失败则继续走后续中间件

path2用于设定静态文件夹,此目录中所有的文件都可以通过静态文件方式访问

说明:在node.js中,所有路由匹配都是中断的:匹配逻辑是从上往下进行匹配,如果匹配成功则中断匹配,如果还需要继续,则通过next中间件进行后续匹配

get请求参数获取方式,由于get请求的参数直接在url中跟随,所以直接通过req.query的方式获取到 Post请求参数获取方式,不能直接在express中获取,必须要借助第三方的模块body-parser来获取 如果 Post请求中还涉及到文件的上传,则必须使用formidable模块来实现


Express中ejs使用

第一步引入模板引擎: app.set(“view engine”,”ejs”); 第二部通过render方法来给模板注入json数据:res.render(path,json); 注意:render寻找模板文件一般会默认在views目录下寻找,且模板后缀名为.ejs 设置模板文件路径:app.set(“views”,”路径文件夹”);


Express中的req对象和res对象

Express中的req对象和res对象和原生node.js对象不是同一个,虽然有些方法名相同

req对象常用函数和属性:

(1)req.originalUrl、req.baseUrl

(2)req.cookies、req.params、req.query

res对象常用函数和属性

(1)res.cookie()、res.clearCookie()

(2)res.send()、res.end()、json()

(3)res.status()

觉得可用,就经常来吧!Javascript技巧 脚本宝典 欢迎评论哦! js技巧,巧夺天工,精雕玉琢。小宝典献丑了!

本文固定链接: http://www.js-code.com/js/js_1615.html