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上实现。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 个人入门学习用笔记、不过多作为参考依据。如有错误欢迎斧正 目录 简书好像不支持锚点、复制搜索(反正也是写给我自己看...
    kirito_song阅读 7,192评论 1 37
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,330评论 25 709
  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    w_zhuan阅读 8,974评论 2 41
  • 英孚家长: 您好! 孩子今天主要学习了U2L5: 1.复习家庭成员名称.高,矮,胖,瘦,年轻,年老 2.学习介绍家...
    EmilyJia阅读 1,345评论 0 0
  • Given a string s consists of upper/lower-case alphabets a...
    DrunkPian0阅读 1,209评论 0 0