• Nodejs express框架 浅析


    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( )

    基础中间件介绍

    1static静态资源处理中间件

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

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

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

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

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

    7favicon网站图标处理中间件

    2. express路由

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

    路由是由一个URLHTTP请求(GETPOST等)和若干个句柄组成

    路由中的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参数的常用方法

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

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

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

    文件上传插件busboy

    res参数的常用属性

    1app表示express的应用对象

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

    3Locals本地变量

    res参数的常用方法

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

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

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

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

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

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

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

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

    9location(path)指定网站地址

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

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

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

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

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

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

    16write(data)传递数据

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

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

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

    3. ejs模板引擎

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

    ejs特点:

    1)快速编译和渲染

    2)简单的模板标签

    3)自定义标记分隔符

    4)文件的包含

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

    6)模板静态缓存

    7)支持express视图系统

    ① ejs成员函数

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

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

    data:数据

    [option]:配置选项

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

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

    [option]:配置选项

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

    ejs常用标签

    1<%  %>流程控制标签

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

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

    4<%#  %>注释标签

    5%对标记转义

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

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

     

  • 相关阅读:
    IntelliJ IDEA插件-常用插件
    Java代码规范和质量检查插件-Checkstyle(官方资源)
    Google代码风格配置文件(Java)(IDEA/Eclipse)
    Java中常量定义在interface和class的区别(转)
    Mac下安装Iterm2终端工具
    Ubuntu 16.04安装IntelliJ出品的数据库管理工具DataGrip
    Ubuntu 16.04安装JAD反编译工具(Java)
    Java中String字符串toString()、String.valueOf()、String强转、+ ""的区别
    微信开发(一)基于Wx-java的微信分享功能
    spring@value取不到值的几种情况
  • 原文地址:https://www.cnblogs.com/Tabb/p/6583235.html
Copyright © 2020-2023  润新知