2. Node + Express 环境配置略述+Socket.io Session的简单配置

Node + Express 的环境配置 = 下载WebStorm

这是博主的最佳建议,如果你在海外留学,那么去WebStorm官网注册个学生账号,JetBrains旗下所有软件免费1年起,PyCharms!IntelliJ!想想就有点小激动。
国内的同学也别着急,万能淘宝总是没错的。
如果没用最佳建议,按着官网一步一步来一定是没错的。
更新:
其实现在更习惯用 visual studio code + es hint plugin + express-generator.

//全局安装express-generator
npm install express-generator -g
// 初始化express框架
express myapp
关于开源库
"dependencies": {
    "aliyun-sdk": "1.6.2",//阿里云
    "async": "2.0.0-rc.6",//Promise也可以实现它的功能,用来写同步
    "body-parser": "~1.13.2",//解析body,自带
    "connect-multiparty": "2.0.0",//解析获取Multipart
    "connect-redis": "3.0.2",//连接redis
    "cookie-parser": "~1.3.5",//解析Cookies
    "debug": "~2.2.0",//debug
    "express": "~4.13.1",//express
    "express-session": "1.13.0",// sesion
    "hiredis": "1.0.0",//另一种用来连接redis的
    "morgan": "~1.6.1",//node自带的日志记录器
    "redis": "2.6.1",//redis
    "request": "2.72.0",//用来发起请求,业务需要转发请求
    "serve-favicon": "~2.3.0",//自带favicon
    "socket.io": "1.4.5",//soket.io
    "socket.io-express-session": "0.1.3",//顾名思义
    "urllib": "2.13.0", //顾名思义
    "mysql":"2.11.1" //顾名思义
  }

开源库的选择可以稍微说几句。

  1. bluebird
    a. 因为JS回调之繁琐,所以Promise被提出来。这几乎是复杂回调的必需品。我选择了bluebird,同类产品都可。(Async其实挺好用的......)
    b. Promisify这个神奇的函数。

  2. socket.io
    谁用谁知道。(如果勇敢的话,甚至所有数据都可以通过socket.io来传输,开发起来会真的很快。)

稍微谈一下socket.io的配置(我配置在www里)

var app = require('../app');
var http = require('http');
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
var server=http.createServer(app);
var io=require('socket.io')(server);
io.use(function(socket, next) {
  app.final_session_setting(socket.request, socket.request.res, next);
});

app.js

var session = require('express-session');
var RedisStore = require('connect-redis')(session);
var final_session_setting=session({
  store: new RedisStore({
    client:client
  }),
  secret: 'keyboard cat',
  cookie: { maxAge: 259200000 }
});

这样设置是为了能直接从Socket.io里获取(共享)session
其他配置起来没有太多难度。
其他更多中间件自己来写,博主心里隐约有个大的梦想,就是把Spring Security 在Node上实现。

你可能感兴趣的:(2. Node + Express 环境配置略述+Socket.io Session的简单配置)