1. app.js
var http = require('http');
var path = require('path');
var filter = require('./app_filter'); //url解析
var express = require('./node_modules/express');
var session = require('express-session'); //后台保存用户信息
var bodyParser = require('./node_modules/body-parser'); //后台获取传入的信息
var cookieParser = require('./node_modules/cookie-parser'); //浏览器保存信息
var app = express();
// HTML模板改为EJS,模板后缀名为html
app.set('views', path.join(__dirname, 'views'));
app.engine('html', require('ejs').renderFile); //设置页面引擎为html
app.set('view engine', 'html');
app.use(bodyParser.json()); //如果没有,req中将没有body对象
app.use(bodyParser.urlencoded({extended: false}));
app.use(cookieParser("xx"));
app.use(express.static(path.join(__dirname, 'public'))); //静态资源
var store = new session.MemoryStore(); //设置session
app.use(session({
store: store,
name: 'gcsoft.sid',
secret: "webmeeting",
resave: false,
cookie: {maxAge: 60000 * 60 * 5},
saveUninitialized: true
}));
app.use(filter.init); //url过滤
var routes = require('./web_routes'); //url解析。路由
app.use('/', routes);
module.exports = app; //模块导出
2. www.js启动文件
var app = require('../app');
var http = require('http');
var server = http.createServer(app); //创建服务器
app.set('port', 8080);
server.listen(8080) //监听8080端口
3. 过滤器app_filter
exports.init = function(req, res, next) {
var ignore_url =['/sign','/checkUser']; //忽略的接口数组
for (var i = 0; i < ignore_url.length; i++) {
if (req.url.indexOf(ignore_url[i]) != -1) {
return next(); //如果忽略,进入web_router路由
}
}
if (!req.session.user) { //未登录
if (req.xhr) {
//如果是ajax请求,则返回JSON
return res.send({
result_code: -1,
message: "未登录"
});
} else {
//如果不是ajax请求,则返回登录页面
return res.redirect('http://' + req.headers.host + '/sign');
}
next();
}
return next(); //已登录,正常执行
}
4. 模块引入
./代表当前目录下。
var http = require('http');
var path = require('path');
var filter = require('./app_filter'); //url解析
var express = require('./node_modules/express');
var session = require('express-session'); //后台保存用户信息
var bodyParser = require('./node_modules/body-parser'); //后台获取传入的信息
var cookieParser = require('./node_modules/cookie-parser'); //浏览器保存信息
var app = express();
// HTML模板改为EJS,模板后缀名为html
app.set('views', path.join(__dirname, 'views'));
app.engine('html', require('ejs').renderFile); //设置页面引擎为html
app.set('view engine', 'html');
app.use(bodyParser.json()); //如果没有,req中将没有body对象
app.use(bodyParser.urlencoded({extended: false}));
app.use(cookieParser("xx"));
app.use(express.static(path.join(__dirname, 'public'))); //静态资源
var store = new session.MemoryStore(); //设置session
app.use(session({
store: store,
name: 'gcsoft.sid',
secret: "webmeeting",
resave: false,
cookie: {maxAge: 60000 * 60 * 5},
saveUninitialized: true
}));
app.use(filter.init); //url过滤
var routes = require('./web_routes'); //url解析。路由
app.use('/', routes);
module.exports = app; //模块导出
2. www.js启动文件
var app = require('../app');
var http = require('http');
var server = http.createServer(app); //创建服务器
app.set('port', 8080);
server.listen(8080) //监听8080端口
3. 过滤器app_filter
exports.init = function(req, res, next) {
var ignore_url =['/sign','/checkUser']; //忽略的接口数组
for (var i = 0; i < ignore_url.length; i++) {
if (req.url.indexOf(ignore_url[i]) != -1) {
return next(); //如果忽略,进入web_router路由
}
}
if (!req.session.user) { //未登录
if (req.xhr) {
//如果是ajax请求,则返回JSON
return res.send({
result_code: -1,
message: "未登录"
});
} else {
//如果不是ajax请求,则返回登录页面
return res.redirect('http://' + req.headers.host + '/sign');
}
next();
}
return next(); //已登录,正常执行
}
4. 模块引入
./代表当前目录下。
../代表上一级目录。
5.后台
session的保存与销毁
req.session.user = data.userInfo;
req.session.destroy();
返回页面求请求 :res.render('Index')即会加载Index.html
返回操作的状态信息:res.status(200).json({});
返回数据:res.send(data);目录结构