express

express

  • express介绍
1
2
express是nodejs的一个非常优秀的mvc框架,他对nodejs做了一定的封装,以方便程序员建立自己的web应用,
而不需要再使用nodejs原始的方法创建http服务。他只是一个工具,一个nodejs的模块。
  • 使用express
1
2
3
4
引入这个模块
var express=require('express')
var app = express();
app是express的返回值,也是一个函数,接着我们就要使用app上的方法
  • 监听方法
1
2
app.listen(端口号,function(){'success'})
使用express就省略了很多代码,这一句就省略了用$http.createserver(function(req,res){}).listen()
  • 路由(请求的方法和路径) path可以为*, 方法可以为all
1
2
3
4
app.get('/',function(){})
/ 表示根目录
* 表示全部匹配
all 表示匹配到所有的方法
  • 中间件(Middleware) 是一个函数
1
2
3
4
5
6
7
app.use(function(req,res,next){}) 应用中间件
next() 决定了是否继续向下执行,有就执行,没有就不执行
app.use(function(error,req,res,next){}) 错误中间件
next中传递错误,会被错误中间件接受 参数为四个参数的中间件
执行任何代码。修改请求和响应对象。
抽取了公有的属性和方法
路径默认为‘/’,开头路径可以匹配

EJS(以后要接触Jade)

  • EJS简介

    1
    EJS是一个JavaScript模板库,用来从JSON数据中生成HTML字符串。原理就是字符串拼接
  • 三种绑定方式

    1
    2
    3
    4
    5
    <%= title%> 得到的就是<h1>hello zfpx</h1>,并不会渲染html
    <%-title%> hello zfpx 会渲染html
    <%%> 嵌套js表达式
    title 都是在server中已经声明定义过的,如:app.get('/',function (req,res) {
    res.render('1',{title:'<h1>hello zfpx</h1>',arr:[1,2,3],flag:false}); });
  • 设置模版引擎(背)

1
2
3
4
5
6
7
8
9
10
11
第一种设置方式(一般不用)
app.set('view engine','ejs')
app.set('views',__dirname) __dirname表示当前文件夹下的所有静态文件
第二种设置方式(常用)
app.set('view engnie','html')
app.engnie('html',require(''ejs).__express)
app.set('views',__dirname)
res.locals.title='123'
app.locals:这是一个函数对象,可以给它增加新的属性。程序内所有页面模板都能访问这个对象,所以可以用它保存全局配置变量供页面模板使用。
在response部分,有一个跟app.locals对应的res.locals。res.locals用于保存请求级变量,它的用法跟app.locals一样
  • 渲染模版
1
res.render('1.ejs',function(error,data){})

静态文件的服务

1
app.use(express.static(__dirname));
  • 发送文件
1
2
res.sendFile('./1.html',{root:__dirname}); {root:__dirname}:配置路径
res.sendFile(path.resolve('./1.html'));
  • 解析请求体
    1
    2
    3
    4
    npm install body-parser 安装插件
    var bodyParser = require('body-parser');
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({extented:true}));