zoukankan      html  css  js  c++  java
  • 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();
  • 相关阅读:
    SCAU 9504 面试
    SCAU 9503 懒人选座位
    SCAU 8628 相亲
    SCAU 10691 ACM 光环
    SCAU 8626 原子量计数
    SCAU 10674 等差对
    HDU ACM 1048 The Hardest Problem Ever (水题)
    SCAU 9502 ARDF
    SCAU 10686 DeathGod不知道的事情
    SCAU 8629 热身游戏(高精度)
  • 原文地址:https://www.cnblogs.com/liubei/p/nodejs_5.html
Copyright © 2011-2022 走看看