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" //顾名思义
}
开源库的选择可以稍微说几句。
bluebird
a. 因为JS回调之繁琐,所以Promise被提出来。这几乎是复杂回调的必需品。我选择了bluebird,同类产品都可。(Async其实挺好用的......)
b. Promisify这个神奇的函数。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上实现。