express+mogoose+socket+session+sass搭建服务器端之各种安装各种依赖看这里
2018-03-16 22:33
218 查看
express安装
npm install express-generator
express -h 查看帮助信息 如果安装过全局的可以直接用下面命令
创建express项目
express -e .npm install
创建各路由
安装sass
npm i node-sass --save-dev
npm i node-sass -g
配置package.jsonscripts:{
“build”:”node-sass sass -w -o css”
}
安装session
npm install express-sessionnpm install session-file-store
导入const session= require(“express-session”);
const FileStore = require(‘session-file-store’)(session);
中间件const sessionMiddleware = session({
store:new FileStore(),
secret:’keyboard cat’,
cookie:{maxAge:60000}
})
app.use(sessionMiddleware);
router.get(“/“,function(requires){
req.session.lll=lll;
})
安装验证图片
npm install png-word
var PW = require("png-word");
var pw = new PW();
router.get("/vimg",function(req,res){
var r = new R("abcdefghijklmnopqrst");
pw.createReadStream(r.random(3)).pipe(res);
// pw.on("parsed",function(){
// this.createReadStream("11132221").pipe(res);
// })
})
npm install liangzeng/random-word
安装module
npm install module
安装mongoldbcd binmkdir datamongod —dbpath data
npm install mongoose
mac 下启动./mongod —dbpath data
安装socketnpm i socket.io
最张产生package.json{
"name": "week08-homework",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www",
"build": "node-sass ./public/stylesheets/scss -w -o ./public/stylesheets/css"
},
"dependencies": {
"body-parser": "~1.18.2",
"connect-multiparty": "^2.1.0",
"cookie-parser": "~1.4.3",
"debug": "~2.6.9",
"ejs": "~2.5.7",
"express": "~4.15.5",
"express-session": "^1.15.6",
"express-socket.io-session": "^1.3.2",
"module": "^1.2.5",
"mongoose": "^5.0.3",
"morgan": "~1.9.0",
"multer": "^1.3.0",
"png-word": "0.0.7",
"random-word": "github:liangzeng/random-word",
"serve-favicon": "~2.4.5",
"session-file-store": "^1.2.0",
"socket.io": "^2.0.4"
},
"devDependencies": {
"node-sass": "^4.7.2"
}
}
app.js配置var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var index = require('./routes/index');
var users = require('./routes/users');
var product = require('./routes/product');
var message = require('./routes/message');
var article = require('./routes/article');
var config = require('./routes/config');
var chat = require('./routes/chat');
var multipart = require('connect-multiparty');
const session = require("express-session");
const FileStore = require('session-file-store')(session);
// const sessionMiddleware = session({
// store:new FileStore(),
// secret:'abcdefg',
// cookie:{maxAge:300000}
// });
var expsession = require("express-session")({
secret:'keyboard cat',
cookie:{maxAge:800000}
});
//把 express下的session放到io下 iosession用的
var iosession = require("express-socket.io-session")(expsession);
var app = express();
//app连上了server
var server = require("http").Server(app);
//server 与 socket关联
var io = require("socket.io")(server);
server.listen(3000);
//加上端口号 同时去掉最后的exports
io.use(iosession);//加上 iosession
// let firstSocket;
io.on("connection",function(socket){
socket.on("req",function(data,cb){
console.log("接受到请求");
cb();//表示响应的回调函数
})
socket.on("say",data=>{
console.log(socket.handshake.session.num);
const num = ++socket.handshake.session.num;
socket.handshake.session.save();//socket环境下更改数据后对express下的也生效,持久化保存
// io.emit("newsay",data +"num :"+num);
// socket.emit("newsay",data+"(创建时间: "+ new Date()+ ")");
io.emit("newsay",data+" ( "+
(new Date().getMonth()+1)+"月"+new Date().getDate()+"日"+new Date().getHours()+":"+new Date().getMinutes()
+ ")");
// io.emit("newsay",data+" ( "+
// new Date().getMonth()+1
// + ")");
})
// if(firstSocket){
// console.log("firstSocket ===socket : ",firstSocket === socket);
// }else{
// firstSocket = socket;
// }
// socket.on("say",data=>console.log(data));
//
// socket.emit("welcome","欢迎你");
// socket.emit("welcome2","hello word");
// socket.on("question",data=>console.log(data));
});
// app.use(sessionMiddleware);
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(expsession);//为普通的express加上中间件 现在已经不依赖cookie
app.use(express.static(path.join(__dirname, 'public')));
// app.use(multipart({uploadDir:'./temp' }));
// app.use(multipart({uploadDir:'./temp'}));
app.use('/', index);
app.use('/users', users);
app.use('/product', product);
app.use('/message', message);
app.use('/article', article);
app.use('/config', config);
app.use('/chat', chat);
app.use("/lesson19",require("./routes/19"));
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
// module.exports = app;
npm install express-generator
express -h 查看帮助信息 如果安装过全局的可以直接用下面命令
创建express项目
express -e .npm install
创建各路由
安装sass
npm i node-sass --save-dev
npm i node-sass -g
配置package.jsonscripts:{
“build”:”node-sass sass -w -o css”
}
安装session
npm install express-sessionnpm install session-file-store
导入const session= require(“express-session”);
const FileStore = require(‘session-file-store’)(session);
中间件const sessionMiddleware = session({
store:new FileStore(),
secret:’keyboard cat’,
cookie:{maxAge:60000}
})
app.use(sessionMiddleware);
router.get(“/“,function(requires){
req.session.lll=lll;
})
安装验证图片
npm install png-word
var PW = require("png-word");
var pw = new PW();
router.get("/vimg",function(req,res){
var r = new R("abcdefghijklmnopqrst");
pw.createReadStream(r.random(3)).pipe(res);
// pw.on("parsed",function(){
// this.createReadStream("11132221").pipe(res);
// })
})
npm install liangzeng/random-word
var R = require("random-word"); var r = new R("abcdefghijklmnopqrst") pw.createReadStream(r).pipe(res);
安装module
npm install module
安装mongoldbcd binmkdir datamongod —dbpath data
npm install mongoose
mac 下启动./mongod —dbpath data
安装socketnpm i socket.io
最张产生package.json{
"name": "week08-homework",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www",
"build": "node-sass ./public/stylesheets/scss -w -o ./public/stylesheets/css"
},
"dependencies": {
"body-parser": "~1.18.2",
"connect-multiparty": "^2.1.0",
"cookie-parser": "~1.4.3",
"debug": "~2.6.9",
"ejs": "~2.5.7",
"express": "~4.15.5",
"express-session": "^1.15.6",
"express-socket.io-session": "^1.3.2",
"module": "^1.2.5",
"mongoose": "^5.0.3",
"morgan": "~1.9.0",
"multer": "^1.3.0",
"png-word": "0.0.7",
"random-word": "github:liangzeng/random-word",
"serve-favicon": "~2.4.5",
"session-file-store": "^1.2.0",
"socket.io": "^2.0.4"
},
"devDependencies": {
"node-sass": "^4.7.2"
}
}
app.js配置var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var index = require('./routes/index');
var users = require('./routes/users');
var product = require('./routes/product');
var message = require('./routes/message');
var article = require('./routes/article');
var config = require('./routes/config');
var chat = require('./routes/chat');
var multipart = require('connect-multiparty');
const session = require("express-session");
const FileStore = require('session-file-store')(session);
// const sessionMiddleware = session({
// store:new FileStore(),
// secret:'abcdefg',
// cookie:{maxAge:300000}
// });
var expsession = require("express-session")({
secret:'keyboard cat',
cookie:{maxAge:800000}
});
//把 express下的session放到io下 iosession用的
var iosession = require("express-socket.io-session")(expsession);
var app = express();
//app连上了server
var server = require("http").Server(app);
//server 与 socket关联
var io = require("socket.io")(server);
server.listen(3000);
//加上端口号 同时去掉最后的exports
io.use(iosession);//加上 iosession
// let firstSocket;
io.on("connection",function(socket){
socket.on("req",function(data,cb){
console.log("接受到请求");
cb();//表示响应的回调函数
})
socket.on("say",data=>{
console.log(socket.handshake.session.num);
const num = ++socket.handshake.session.num;
socket.handshake.session.save();//socket环境下更改数据后对express下的也生效,持久化保存
// io.emit("newsay",data +"num :"+num);
// socket.emit("newsay",data+"(创建时间: "+ new Date()+ ")");
io.emit("newsay",data+" ( "+
(new Date().getMonth()+1)+"月"+new Date().getDate()+"日"+new Date().getHours()+":"+new Date().getMinutes()
+ ")");
// io.emit("newsay",data+" ( "+
// new Date().getMonth()+1
// + ")");
})
// if(firstSocket){
// console.log("firstSocket ===socket : ",firstSocket === socket);
// }else{
// firstSocket = socket;
// }
// socket.on("say",data=>console.log(data));
//
// socket.emit("welcome","欢迎你");
// socket.emit("welcome2","hello word");
// socket.on("question",data=>console.log(data));
});
// app.use(sessionMiddleware);
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(expsession);//为普通的express加上中间件 现在已经不依赖cookie
app.use(express.static(path.join(__dirname, 'public')));
// app.use(multipart({uploadDir:'./temp' }));
// app.use(multipart({uploadDir:'./temp'}));
app.use('/', index);
app.use('/users', users);
app.use('/product', product);
app.use('/message', message);
app.use('/article', article);
app.use('/config', config);
app.use('/chat', chat);
app.use("/lesson19",require("./routes/19"));
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
// module.exports = app;
相关文章推荐
- 【已解决】nimfa 环境的详细搭建过程 + 各种依赖库的安装、下载、调试
- Android 源码编译环境搭建(64位Ubuntu)各种依赖包安装
- 【Nodejs&&ExpressJS&&AngularJS】安装与框架搭建
- Ubuntu 搭建LNMP环境图文教程 安装所需依赖库
- 14级团队学习成果汇报 -- 利用express+socket.io搭建简易版聊天室
- express 4.x, Socket.IO 1.x 共享session
- [MO]windows xp下vs2008 安装opencv2.3 ,开发环境搭建
- LNMP搭建时可能用到的各种安装参数总结
- Nodejs入门学习,nodejs web开发入门,npm、express、socket配置安装、nodejs聊天室开发
- node.js中 express-session的安装使用及session的持久化
- Node+Express+MongoDB + Socket.io搭建实时聊天应用实战教程(二)--node解析与环境搭建
- 使用express+mongoDB搭建多人博客 学习(1) 安装blog工程
- mysql搭建安装常见问题:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql
- cocos2d-x 3.10 开发环境搭建及VS安装各种坑
- 浅谈Linux下的LAMP开发环境的搭建及discuz、phpWind、phpBB3、wordpress各种论坛博客的安装
- 在Express和Socket.IO中使用session
- 树莓派搭建web服务器时安装nginx出现依赖问题解决方法
- Nginx服务安装从小白到精通你只差这个文件(包括各种依赖包的解释)
- android环境搭建时出现各种问题时手动安装的方法
- Node.js下基于Express + Socket.io 搭建一个基本的在线聊天室