express的使用方法

配合shark-node-openid,能让express项目快速继承公司的openid登录功能

var express = require('express');
var session = require('express-session');
var SQLiteStore = require('connect-sqlite3')(session);

var crypto = require('crypto');
//添加数据库文件依赖
var fs = require("fs");
var jsPath  ='/scripts',
    cssPath ='/styles';
var app = express();

var OpenIDDecoractor = require("shark-node-openid");

app.use(session({
    secret: '12345',
    name: 'testapp',          //这里的name值得是cookie的name,默认cookie的name是:connect.sid
    cookie: {maxAge: 80000 },  //设置maxAge是80000ms,即80s后session和相应的cookie失效过期
    resave: false,
    saveUninitialized: true,
    store: new SQLiteStore
}));

OpenIDDecoractor.init(app, 'express');

app.get('/home',OpenIDDecoractor.needLogin(function(req,res,next){
    res.send('验证成功');
}));

//发送静态文件
var sendFile = function(staticPath){
    return function(req,res,next){
        var reqPath = req.path === '/' ? '/index.html' : req.path;
        var f = "webapp" + staticPath + reqPath;
        if(fs.existsSync(f)){
            if(/\.html$/.test(reqPath)){
                res.set('Content-Type','text/html');
                res.send(fs.readFileSync(f,'UTF-8'));
            }else if(/\.js$/.test(reqPath)){
                res.set('Content-Type','text/javascript');
                res.send(fs.readFileSync(f,'UTF-8'));
            }else if(/\.css$/.test(reqPath)){
                res.set('Content-Type','text/css');
                res.send(fs.readFileSync(f,'UTF-8'));
            }
        }
        next();
    }
}

app.use(jsPath,sendFile(jsPath));
app.use(cssPath,sendFile(cssPath));
app.use('/index',sendFile(''));

/* 此处实例了ajax接口形式的openid权限控制 */
app.use('/xhr/getUserInfo.do', OpenIDDecoractor.ajaxNeedLogin(function(req, res, next){
    var obj = {
        "code": 200,
        "data": {
            "userId": 0,
            "userName": "stone-jin"
        }
    };
    res.send(obj);
}));

//监听窗口
var server = app.listen(8000, function () {
  var host = server.address().address;
  var port = server.address().port;
  console.log(host);
  var openurl = require('openurl');
  openurl.open('http://127.0.0.1:' + port + "/home");
  console.log("应用实例,访问地址为 http://%s:%s",host,port);
})