您的位置:首页 > 编程语言 > Go语言

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
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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: