zoukankan      html  css  js  c++  java
  • nodejs:express 4.x

      最近学习express,最新的版本到了4.x,与之前的3.0版本相比,变化还是很大的。网上的教程很多都是基于3.0的,再编译一个例子的时候,吃了不少苦头。现总结一下express4.x的变化。

    1. 安装:

      安装就不用多说了,如果不想用最新的版本,安装之前的版本,$ npm install -g express@3

    4.0与3.0具体的差别,看一下 Migrating from 3.x to 4.x 的文档会明白。

      如果是 npm install -g express命令安装,但是,安装成功之后居然提示express不是内部或外部命令。原来最新express4.0版本中将命令工具分家出来了(项目地址:https://github.com/expressjs/generator),所以我们还需要安装一个命令工具,命令如下:

    npm install -g express-generator

    使用express创建一个工程:
    express helloworld
    新版本中命令发生了一些改变, 创建好project之后还需要用npm进行添加依赖和启动:
    cd helloworld
    npm install
    npm start
    然后新创建的helloworld就已经运行在3000端口上。

    注意,最新的启动方式改为 npm start,而不是node app.js

    2. session

    在express 4.0之前的版本,像session之类的中间件是伴随express自动安装的,网上有的教程使用的express版本正是4.0之前的版本,所以在使用4.0及其之后版本的时候一定要注意这点。

    先在package.json 里添加

    "dependencies": {
    "express": "~4.9.0",
    "body-parser": "~1.8.1",
    "cookie-parser": "~1.3.3",
    "morgan": "~1.3.0",
    "serve-favicon": "~2.1.3",
    "debug": "~2.0.0",
    "ejs": "~0.8.5",
    "mongodb": "*",
    "connect-mongo": "*",
    "connect-flash": "*",
    "express-session": "*",
    "cookie-session": "*",
    "cookies": "*"
    }

    然后用npm istall 下载安装mongodb、connect-mongo、connect-flash、express-session。

    查看node_modulesconnect-mongoReadme.md可以看到4.0之后的用法已经不一样了。

    With express4:  
          
        var session    = require('express-session');  
        var MongoStore = require('connect-mongo')(session);  
      
        app.use(session({  
            secret: settings.cookie_secret,  
            store: new MongoStore({  
              db : settings.db,  
            })  
          }));  
      
    With express<4:  
      
        var express = require('express');  
        var MongoStore = require('connect-mongo')(express);  
      
        app.use(express.session({  
            secret: settings.cookie_secret,  
            store: new MongoStore({  
              db: settings.db  
            })  
          }));  
      
    With connect:  
      
        var connect = require('connect');  
        var MongoStore = require('connect-mongo')(connect);  

    在项目中添加session引用,原来的版本是不需要的。

    var session = require('express-session');

    var MongoStore = require('connect-mongo')(session);

    使用的时候不在使用express.session,而是直接使用session():

    app.use(session({
      secret: settings.cookieSecret,
      key: settings.db,//cookie name
      cookie: {maxAge: 1000 * 60 * 60 * 24 * 30},//30 days
      store: new MongoStore({
        db: settings.db
      })
    }));
  • 相关阅读:
    JQuery EasyUI属性和常见用法
    iOS 设置随意屏幕旋转
    iOS 打印系统字体
    iOS 实时监测网络状态(通过Reachability)
    UITableView上添加按钮,按钮点击效果延迟的解决办法
    ios下通过webservice获取数据
    (转发)InputAccessoryView的使用方法
    (转发)IOS动画中的枚举UIViewAnimationOptions
    (转发)IOS高级开发~Runtime(四)
    (转发)IOS高级开发~Runtime(三)
  • 原文地址:https://www.cnblogs.com/cjingzm/p/4017884.html
Copyright © 2011-2022 走看看