• nodejs笔记--express篇(五)


    创建一个express + ejs的项目

    express -e testEjsWebApp
    
    cd testEjsWebApp
    
    npm install

    http://localhost:3000
    Usage: express [options] [dir]
    
      Options:
    
        -h, --help          output usage information
        -V, --version       output the version number
        -e, --ejs           add ejs engine support (defaults to jade)
        -H, --hogan         add hogan.js engine support
        -c, --css <engine>  add stylesheet <engine> support (less|stylus|compass) (d
    efaults to plain css)
        -f, --force         force on non-empty directory

    ejs使用语法

      1.<%= %>

      这个标签在接到收到title: '<h1>Express</h1>'时,从显示效果来看,他直接输出HTML标签到页面上,输出的是转义后的变量值

      2.<%- %>   

      而这个标签,从显示效果上看,他没有直接输出HTML代码到页面上,输出的是没有转义后的变量值

      3.<% %>

      而这个标签,从显示上看,他循环了出来参数中的值,标签中是javascript逻辑代码,注意括号的开闭合

    express项目分析

      先从app.js看起

      1.app.set(name,value)

      把名字为name的项的值设为value,用于设置参数

      app.set('views', path.join(__dirname, 'views')); 设置了模版文件夹的路径;主要清楚__dirname的意思就可以了,它是node.js中的全局变量,表示取当前执行文件的路径

      app.set('view engine', 'ejs'); 设置使用的模版引擎,我们使用的ejs

      2.app.use([path], function)

      用这个方法来使用中间件,因为express依赖于connect,有大量的中间件,可以通过app.use来使用;path参数可以不填,默认为'/' (项目中用到的就不分别解释了,用到的时候自已查一API的中间件部分)

      app.use(express.static(path.join(__dirname, 'public'))); 这一句中可能要注意一下,express.static( )是处理静态请求的,设置了public文件,public下所有文件都会以静态资料文件形式返回(如样式、脚本、图片素材等文件)

      3.app.get(name)

      获取名为name的项的值

    GET和POST方式接收值,从直接效果上来看

      req.query:我用来接收GET方式提交参数

      req.body:我用来接收POST提交的参数

      req.params:两种都能接收到

    解释一下req.body,Express处理这个post请求是通过中间件bodyParser

    ...
    
    var bodyParser = require('body-parser');
    
    ...
    
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded());
    
    ...

    没有这个中间件Express就不知道怎么处理这个请求,通过bodyParser中间件分析 application/x-www-form-urlencoded和application/json请求,并把变量存入req.body,这种我们才能够获取到!

    如何字符串加密  Crypto http://nodejs.org/api/crypto.html

      createHash(algorithm)方法 ,这是利用给定的算法生成hash对象 

      Node.js提供的加密模块功能非常强大,Hash算法就提供了MD5、sha1、sha256等,根据需要去使用

      update(data, [input_encoding])方法,可以通过指定的input_encoding和传入的data数据更新hash对象,input_encoding为可选参数,没有传入则作为buffer处理 (input_encoding可为'utf-8'、'ascii'等)

      digest([encoding])方法,计算数据的hash摘要值,encoding是可选参数,不传则返回buffer (encoding可为 'hex'、'base64'等);当调用digest方法后hash对象将不可用;

    如何使用session

    "express-session" : "latest" 
    
    
    //这里传入了一个密钥加session id
    app.use(cookieParser('finder'));
    //使用靠就这个中间件
    app.use(session({ secret: 'finder'}));

    如何使用cookies

    //清除cookies
    res.clearCookie('islogin');
      
    //清除session
    req.session.destroy();
  • 相关阅读:
    CMS4.0——后知后觉
    《Mysql 入门很简单》(读后感②)
    《Mysql 入门很简单》(读后感①)
    Mysql 入门
    jQuery ajax中serialize()方法增加其他参数
    简单语法
    音频——H5 audio
    js 中的break continue return
    vue再次入手(数据传递②)
    vue再次入手(数据传递①)
  • 原文地址:https://www.cnblogs.com/liubei/p/nodejs_5.html
Copyright © 2020-2023  润新知