diff --git a/app.js b/app.js index d69a84c..94382d2 100644 --- a/app.js +++ b/app.js @@ -2,37 +2,67 @@ var express = require('express'); var multer = require('multer'); var upload = multer({ dest: 'uploads/' }); var bodyParser = require('body-parser'); +var session = require('express-session'); var fs = require('fs'); var gm = require('gm'); var app = express(); +app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json({ limit: '50mb' })); app.use(express.static('static')); +app.use(session({ + secret: 'tonkia', // 对session id 相关的cookie 进行签名 + resave: true, + saveUninitialized: false, // 是否保存未初始化的会话 + cookie: { + maxAge: 1000 * 60 * 2, // 设置 session 的有效时间,单位毫秒 + } +})); + +//权限判断 +app.use(['/create', '/logout', '/home'], function (req, res, next) { + if (req.session.user) + next(); + else + res.redirect('/'); +}); //临时存储数据 var data = { name: '默认方案', components: [] }; -var acc = 'tonkia'; -var pwd = '123'; +var user = { account: 'tonkia', userName: 'tonkia xx', password: '123' }; //主页加载:登录页面 app.get('/', function (req, res) { res.sendFile(__dirname + "/views/login.html"); }); +//方案创建 +app.get('/create', function (req, res) { + res.sendFile(__dirname + "/views/createScheme.html"); +}); + //登录 app.post('/', function (req, res) { var account = req.body.account; var password = req.body.password; //用户验证 - if (account == acc && password == pwd) { - res.send('登录成功'); + if (account == user.account && password == user.password) { + req.session.user = user; + res.send('1'); } else { - res.send('登录失败'); + res.send('0'); } }); +//用户注销 +app.get('/logout', function (req, res) { + req.session.user = null; + res.redirect('/'); +}); + +//用户主页 app.get('/home', function (req, res) { - res.sendFile(__dirname + "/views/home.html"); + res.sendFile(__dirname + "/views/home.html"); }); //接受文件上传,并且返回文件名 @@ -47,11 +77,11 @@ app.get('/files/:filename', function (req, res) { var filename = req.params['filename']; res.sendFile(__dirname + "/uploads/" + filename); }); + //返回缩略图 app.get('/files/thumbnail/:filename', function (req, res) { var filename = req.params['filename']; // fs.exists(__dirname + "/uploads/thumbnail/" + filename, function (exist) { - // if (exist) { // res.sendFile(__dirname + "/uploads/thumbnail/" + filename); // } else { diff --git a/package.json b/package.json index a9bb731..46383d5 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,9 @@ "author": "", "license": "ISC", "dependencies": { + "body-parser": "^1.18.3", "express": "^4.16.4", + "express-session": "^1.15.6", "gm": "^1.23.1", "multer": "^1.4.1" } diff --git a/static/js/createScheme.js b/static/js/createScheme.js index 24bd045..04929b7 100644 --- a/static/js/createScheme.js +++ b/static/js/createScheme.js @@ -311,12 +311,14 @@ function initTexture() { //初始化所有事件 function initEvent() { $('#saveScheme').click(function () { - console.info(data); - $.ajax({ - type: "POST", - url: "/saveScheme", - contentType: "application/json; charset=utf-8", - data: JSON.stringify(data) + // $.ajax({ + // type: "POST", + // url: "/saveScheme", + // contentType: "application/json; charset=utf-8", + // data: JSON.stringify(data) + // }); + $.post('/saveScheme', data, function () { + }); }); @@ -328,7 +330,7 @@ function initEvent() { //将fileinput事件注册到uploadbtn上 $("#upload").click(function () { $("#file").click(); - }); + }); $("#textureUpload").click(function () { $("#textureFile").click(); @@ -342,6 +344,9 @@ function initEvent() { type: 'post', url: "/upload", data: formData, + cache: false, + processData: false, + contentType: false, success: function (fileData) { //上传成功后加载模型 //加载是异步的 @@ -370,6 +375,9 @@ function initEvent() { type: 'post', url: "/upload", data: formData, + cache: false, + processData: false, + contentType: false, success: function (fileData) { //上传成功后加载模型 //加载是异步的 diff --git a/views/home.html b/views/home.html index 0fffbdf..f7b37d5 100644 --- a/views/home.html +++ b/views/home.html @@ -5,19 +5,48 @@ -