http://www.expressjs.com.cn/

1. 中间件

①挂载中间件的函数:app.use

var http = require('http');

var express = require('express');

var app = express();

使用自定义中间件

app.use('/',function(req , res , next){

console.log(‘这是自定义中间件’)

 next();  调用next表示执行后续的中间件代码

});

使用static中间件加载静态资源

app.use('/', express.static(__dirname + "/statics"));

app.get('/index', function(req, res) {

res.send("hello browser")

res.end();

})

http.createServer(app).listen(3000,function(err) {

if(err) throw err;

console.log('服务器连接成功');

})

安装中间件,npm install body-parser –save

使用中间件:

如果express是4.0以下版本需要挂载在express后面使用express.bodyParser( )

如果express是4.0以上版本,可以直接使用bodyParser( )

② 基础中间件介绍

(1)static静态资源处理中间件

(2)logger获取浏览器基本信息中间件

(3)bodyParser通过post方法提交的数据解析中间件

(4)query通过get方法提交的数据解析中间件

(5)cookieParser用户状态保存cookie解析中间件

(6)session启用session管理用户状态中间件

(7)favicon网站图标处理中间件

2. express路由

路由指如何定义应用的端点,以及如何响应客户端的请求(通俗的讲就是通过制定不同的路径,调用对应方法处理用户的请求)

路由是由一个URL、HTTP请求(GET、POST等)和若干个句柄组成

路由中的URL路径支持正则表达式的方式,例如:/abc?123,表示c可有可无

路由的链式编程:

app.route(‘/parma’).get(function(req,res,next){}).post(function(req,res,next){}) 

表示相同路径下不同请求方式的访问 

① req参数的常用属性

app.get('/index', function(req, res) {

console.log(req.baseUrl);   挂载路由的路径,以根路径为标准

console.log(req.hostname);

console.log(req.ip);      本机的ip地址

console.log(req.path);     此处为/index

console.log(req.protocol);    传输协议,一般为http

console.log(req.query);     地址栏url中传输的参数

console.log(req.route);      路由对象

console.log(req.body);      以post方法提交的数据

console.log(req.cookies);    浏览器中存储的cookie

console.log(req.signedCookies);    浏览器中已签署的cookie,及已经加密过的cookie app.use(cookieParser(“secret”))

res.send("hello browser")

res.end();

})

② req参数的常用方法

(1)get(field)获取请求头中对应名称的属性

(2)is(type)判断是否有指定的mime类型,Content-Type

(3)param(name)获取指定名称的参数值(post,get均可)

③文件上传插件busboy

④ res参数的常用属性

(1)app表示express的应用对象

(2)headersSent表明是否发送过数据给响应对象,是一个boolean值

(3)Locals本地变量

⑤ res参数的常用方法

(1)set(key,value)设置响应头信息

(2)append(key,value)在响应头中追加数据

(3)cookie(name,value,[option])设置cookie

(4)clearCookie(name,[option])清除指定的cookie

(5)download(path,filename,fn)下载文件

(6)end(data,encoding)结束文本数据的输入

(7)get(field)获取响应头中对应的属性值

(8)json(body)发送json字符对象

(9)location(path)指定网站地址

(10)redirect(status,path)重定向到指定的路径

(11)render(view,locals,callback)渲染指定的视图

(12)type(“.html”)设置传递给浏览器文件的响应mime类型Content-Type

(13)sendStatus(302)设置状态码为302,重定向,加载location中的地址

(14)writeHead(302,{location:”http://www.baidu.com/”})设置状态码为302,且加载location中的地址,页面跳转到百度

(15)send(data)可以传递多种数据类型,但是每个路由中只能使用一次,且不能和sendStatus等带有send标识的方法同用

(16)write(data)传递数据

(17)end(data)响应结束标识方法

(18)download(“path” , setname , fn)下载文件

(19)sendFile(“path”)发送文件,此处为绝对路径

3. ejs模板引擎

简单高效的模板语言,通过数据和模板,可以生成HTML标记文本

ejs特点:

(1)快速编译和渲染

(2)简单的模板标签

(3)自定义标记分隔符

(4)文件的包含

(5)支持浏览器端和服务器端

(6)模板静态缓存

(7)支持express视图系统

① ejs成员函数

(1)Render(str,data,[option]):直接渲染字符串生成HTML

str:需要解析的字符串模板

data:数据

[option]:配置选项

(2)Compile(str ,[option]):编译字符串得到模板函数

str:需要解析的字符串模板

[option]:配置选项

[option]中的相关参数可以查阅文档了解使用方法

② ejs常用标签

(1)<%  %>流程控制标签

(2)<%=  %>输出标签(原文输出HTML标签)

(3)<%-  %>输出标签(HTML会被浏览器解析)

(4)<%#  %>注释标签

(5)%对标记转义

(6)-%>去除没有意义的空格

③ ejs1中的过滤器(查看文档了解使用方法)

 

Nodejs express框架 浅析的更多相关文章

  1. React第一篇: 搭建React + nodejs + express框架

    前提: 需要安装Node.js (>6)版本 1.cmd进到本地某个目录, 逐行输入以下指令(以下括号为注释) npm install -g create-react-app   (全局安装cr ...

  2. nodejs express 框架解密1-总体结构

    本文是基于express3.4.6的. 1.express 代码结构为: bin/express 是在命令行下的生成express 框架目录文件用的 lib/express 是框架的入口文件 lib/ ...

  3. nodeJS express框架 中文乱码解决办法

    最近在研究javascript 的服务端应用 node,之所以想要研究node,是因为前几个月一直在前端挣扎,从javascript入门到在项目中实际使用javascript,确实感悟颇深.javas ...

  4. nodejs express 框架 上传文件

    web 项目应用express4.0框架 html 表单post 文件上传失败,后端无法获取提交文件 express不支持文件上传. 方式一 若是图片,可以将图片转码为BASE64上传 前端框架ang ...

  5. 安装nodejs express框架时express命令行无效

    我也是看了这篇才明白.http://jingyan.baidu.com/article/922554468a3466851648f419.html 最近在看一本书,nodejs开发指南.至于出现这个问 ...

  6. Centos 编译安装nodejs&express框架

    一. 下载nodejs 版本 wget http://nodejs.org/dist/v0.10.28/node-v0.10.28.tar.gz 二. 编译安装 cp node-v0.10.28.ta ...

  7. NodeJS express框架的使用

    首先,可以通过npm或者淘宝镜像cnpm全局安装epress框架,这里不具体说了 npm install -g expressnpm install -g express-generator 新建一个 ...

  8. nodejs express 框架解密5-视图

    本文档是基于express 3.4.6 的 在我们的代码中,渲染模板大致是这样写的 exports.index = function(req, res){ res.render('index', { ...

  9. nodejs express 框架解密4-路由

    本文档是基于express3.4.6 express 的路由是自己去实现的,没有使用connect中的路由中间件模块. 1.在如何创建一个app那篇中,我们提到了路由, //router //路由 t ...

随机推荐

  1. javaScript的闭包 js变量作用域

    js的闭包 js的变量作用域: var a=90; //定义一个全局变量 function test(){ a=123; //使用外层的 a变量 } test(); document.write(&q ...

  2. python__高级 : 类的__getattribute__ 方法

    在类 里面,其实并没有方法这个东西,所有的东西都保存在属性里面,所谓的调用方法其实是类里面的一个同名属性指向了一个函数(方法),返回的是函数的引用,再用   函数()    这种方式就可以调用它 在调 ...

  3. 特殊sql查询方法实例

    一.if条件查询:SELECT sum(if(is_buy > 0 ,1,0)) AS friend_count_all_cj, sum(if(is_buy = 0 ,1,0)) AS frie ...

  4. thinkphp3.2 where 条件查询 复查的查询语句

    复查的查询语句 有的时候,我们希望通过一次的查询就能解决问题,这个时候查询条件往往比较复杂,但是却比多次查询库来的高效. 实在是搞不定的话就直接用$where[‘_string’] = ‘xxxx’, ...

  5. kivy学习二:做一个查询所在地区身份证前6位的小软件

    经过半个月的尝试,终于成功,记录下来备查! 做完之后发现有很多的问题没有解决,请大佬多批评指教! 强烈建议:学习KIVY的查看官方文档 需要用的知识: 1.字典的相关知识 2.kivy的下拉列表(Dr ...

  6. 2018Ec-Final比赛总结

    一场匆忙的旅程. NCC_9754_ Victory的最后一场比赛终究没能victory. 去的时候晕车到吐了两次,到宾馆吃完饭直接睡了,但还是两天都昏昏沉沉的头疼的厉害,第二天直接步行去了西工大体育 ...

  7. 笔记-flask基础操作

    笔记-flask基础操作 1.      前言 本文为flask基础学习及操作笔记,主要内容为flask基础操作及相关代码. 2.      开发环境配置 2.1.    编译环境准备 安装相关Lib ...

  8. 原理剖析-Netty之服务端启动工作原理分析(上)

    一.大致介绍 1.Netty这个词,对于熟悉并发的童鞋一点都不陌生,它是一个异步事件驱动型的网络通信框架: 2.使用Netty不需要我们关注过多NIO的API操作,简简单单的使用即可,非常方便,开发门 ...

  9. Java基本数据类型总结二

    Java 基本数据类型总结二 变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间. 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据. 因此,通过 ...

  10. 从事IT业一个8年老兵转行前的自我总结2——从《易经》说开来

    近些年一直在读<易经>,收获颇多.以前看不贯的人或物现在可以淡然看定,以前看不开的一些事现在也安然放下,以前看不透的某些事现在也都可看透八九不离十. 古人云:不读<易>不可为将 ...