var express = require('express');
var app = express();
//require('./clienttmp.js')
const queryString = require("querystring")
//var MongoClient = require('mongodb').MongoClient;
//var dburl = "mongodb://localhost:27017/vr";
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'HS1205',
database : 'vr'
});
connection.connect();
var session = require("express-session");
var cookie = require("cookie-parser");
app.use(cookie());
app.use(session({
secret: 'secret', // 对session id 相关的cookie 进行签名
saveUninitialized: true, // 是否保存未初始化的会话
cookie: { maxAge: 1000 * 60 * 5 }, //过期时间 毫秒为单位
resave: true, //每次触发后保存时间
rolling: true, // 最后一次触发后计时
}));
app.use(function (req, res, next) {
var user = req.session.user;
console.dir(user);
res.locals.user = req.session.user;
var err = req.session.error;
res.locals.message = '';
if (err) res.locals.message = '
' + err + '
';
//next();
console.log(req.path);
//path模块
var path = require('path'); /*nodejs自带的模块*/
var extname = path.extname(req.path); //获取文件的后缀名
console.log(extname);
var skip = 0;
if (extname != '.html') {
skip = 1;
}
if (req.path == 'login.html') {
skip = 1;
}
if (skip) {
next();
return;
}
if (req.path != '/' && !req.session.user)//|| (req.session.user && extname !='.html')))//不是主页 而且没登录或者登录后后缀不是.html的
{
// fs.readFile('./practice/login.html', 'utf-8', function (err, data) {
// if (err) {
// throw err;
// }
// res.send(data);
// })
//res.redirect(302, '/');
//window.open('Login.html','_top')
res.send("")
}
else {
next();
}
});
var path = require('path');
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
var con = require('./conn.js');
const url = require("url")
var fs = require('fs');
app.use(express.static(path.join(__dirname, 'css')));
app.use(express.static(path.join(__dirname, 'practice')));
app.use(express.static(path.join(__dirname, 'node_modules')));
app.use(express.static(path.join(__dirname, 'img')));
app.get('/', function (req, res) {
console.log("主页 GET 请求");
//console.log(req.cookies.user);
var user = req.session.user;
console.dir(user);
if (req.session.user) {
fs.readFile('./views/index.html', 'utf-8', function (err, data) {
if (err) {
throw err;
}
res.send(data);
})
}
else {
fs.readFile('./practice/login.html', 'utf-8', function (err, data) {
if (err) {
throw err;
}
res.send(data);
})
}
})
app.get('/logout', function (req, res) {
console.log("logout")
console.log("注销用户")
req.session.destroy();
fs.readFile('./practice/login.html', 'utf-8', function (err, data) {
if (err) {
throw err;
}
res.send(data);
})
})
// POST 请求
/*
app.post('/', function (req, res) {
console.log("主页 POST 请求");
req.rawBody = '';
var json = {};
req.setEncoding('utf8');
req.on('data', function (chunk) {
req.rawBody += chunk;
});
req.on('end', function () {
//json=JSON.parse(req.rawBody);
//res.send(JSON.stringify(json));
res.send(req.rawBody);
});
})
*/
app.post('/', function (req, res) {
console.log("主页 POST 请求");
req.rawBody = '';
req.setEncoding('utf8');
req.on('data', function (chunk) {
req.rawBody += chunk;
});
req.on('end', function () {
req.rawBody = queryString.parse(req.rawBody)
var body = req.rawBody;
//res.send(JSON.stringify(json));
var a = body.acc;
var b = body.pwd;
//console.log(req.cookies.user);
var user = req.session.user;
console.dir(user);
if (a == "admin" && b == "hsvr113" || a == "hs" && b == "111") {
req.cookies.username = a;
req.session.user = a;
fs.readFile('./views/index.html', 'utf-8', function (err, data) {
if (err) {
throw err;
}
res.send(data);
})
}
else {
//res.send("账户或密码错误!")
fs.readFile('./practice/login.html', 'utf-8', function (err, data) {
if (err) {
throw err;
}
res.send(data);
})
}
});
})
app.post('/dataquery', function (req, res) {
console.log("dataquery POST 请求");
req.rawBody = '';
var json = {};
req.setEncoding('utf8');
req.on('data', function (chunk) {
req.rawBody += chunk;
});
req.on('end', function () {
req.rawBody = queryString.parse(req.rawBody)
var body = req.rawBody;
var type = body.type;
var userid = body.userid;
var begdate = body.begdate;
begdate = begdate.replace(/T/, " ") + ":00";
var enddate = body.enddate;
enddate = enddate.replace(/T/, " ") + ":59";
var whereStr = { "userid": userid, "monitorTime": { "$gte": begdate, "$lte": enddate } };
if (!userid) {
whereStr = {};
}
var jsObj = {};
if (userid) {
jsObj.userid = userid;
}
jsObj.monitorTime = { "$gte": begdate, "$lte": enddate };
var str = JSON.stringify(jsObj);
console.log(typeof str);
var str1 = JSON.parse(str);
console.log(typeof str1);
var mysort = { monitorTime: -1 };
if (type == 'record') {
var sql = 'SELECT * FROM t_records';
//查
connection.query(sql, function (err, result) {
if (err) {
console.log('[SELECT ERROR] - ', err.message);
return;
}
console.log('--------------------------SELECT----------------------------');
console.log(result);
console.log('------------------------------------------------------------\n\n');
res.send(result);
});
}
/*
MongoClient.connect(dburl, { useNewUrlParser: true }, function (err, db) {
if (err) throw err;
var dbo = db.db("vr");
var setname;
if (type == 'record') {
setname = 'record';
}
else if (type == 'envir') {
setname = 'envir';
}
else if (type == 'warning') {
setname = 'warning';
}
else if (type == 'config') {
setname = 'config';
}
if (setname) {
//if (setname != 'envir') {
dbo.collection(setname).find(str1).sort(mysort).toArray(function (err, result) { // 返回集合中所有数据
if (err) throw err;
//console.log(result);
db.close();
console.log('查询数据库返回');
res.send(result)
});
// }
// else {
// dbo.collection(setname).find(str1).toArray(function (err, result) { // 返回集合中所有数据
// if (err) throw err;
// //console.log(result);
// db.close();
// console.log('查询数据库返回');
// res.send(result)
// });
// }
}
});
*/
});
})
app.post('/getuser', function (req, res) {
console.log("getuser POST 请求");
req.rawBody = '';
var json = {};
req.setEncoding('utf8');
req.on('data', function (chunk) {
req.rawBody += chunk;
});
req.on('end', function () {
var a = req.rawBody
res.send(req.session.user);
})
})
//模板
app.post('/dbinterface/setname', function (req, res) {
console.log(" dbinterface setname POST 请求");
req.rawBody = '';
var json = {};
req.setEncoding('utf8');
req.on('data', function (chunk) {
req.rawBody += chunk;
});
req.on('end', function () {
var body = req.rawBody
var action = body.action;
if (action == 'get') {
}
else if (action == 'add') {
}
else if (action == 'update') {
}
else if (action == 'delete') {
}
})
})
app.post('/dbinterface/stationinfo', function (req, res) {
req.rawBody = '';
var json = {};
req.setEncoding('utf8');
req.on('data', function (chunk) {
req.rawBody += chunk;
});
req.on('end', function () {
var body = JSON.parse(req.rawBody);
var action = body.action;
console.log(req.path + " " + action + " 请求");
if (action == 'get') {
/*
MongoClient.connect(dburl, { useNewUrlParser: true }, function (err, db) {
if (err) throw err;
var dbo = db.db("vr");
dbo.collection('stationinfo').find({}).toArray(function (err, result) {
if (err) throw err;
console.log(result);
db.close();
res.send(result)
});
});
*/
}
else if (action == 'add') {
/*
MongoClient.connect(dburl, { useNewUrlParser: true }, function (err, db) {
if (err) throw err;
var dbo = db.db("vr");
var myobj = body.info;
dbo.collection("stationinfo").insertOne(myobj, function (err, res) {
if (err) throw err;
console.log("站点信息插入成功");
db.close();
});
});
*/
}
else if (action == 'update') {
}
else if (action == 'delete') {
}
})
})
//api 模板
app.post('/api/get', function (req, res) {
console.log(req.path + " 请求");
req.rawBody = '';
req.setEncoding('utf8');
req.on('data', function (chunk) {
req.rawBody += chunk;
});
req.on('end', function () {
var body = JSON.parse(req.rawBody);
var json = {};
json['code'] = 200;
json['message'] = "请求成功"
json['success'] = 'true'
json['data'] = {};
res.send(json);
})
})
app.post('/api/getallstation', function (req, res) {
console.log(req.path + " 请求");
req.rawBody = '';
req.setEncoding('utf8');
req.on('data', function (chunk) {
req.rawBody += chunk;
});
req.on('end', function () {
var body = JSON.parse(req.rawBody);
var json = {};
json['code'] = 200;
json['massage'] = "请求成功"
/*
MongoClient.connect(dburl, { useNewUrlParser: true }, function (err, db) {
if (err) throw err;
var dbo = db.db("vr");
dbo.collection('stationinfo').find({}).toArray(function (err, result) {
if (err) throw err;
//console.log(result);
db.close();
json['success'] = 'true'
json['data'] = result;
res.send(json)
});
});
*/
})
})
app.post('/api/getstation/:id', function (req, res) {
console.log(req.path + " 请求");
req.rawBody = '';
req.setEncoding('utf8');
req.on('data', function (chunk) {
req.rawBody += chunk;
});
req.on('end', function () {
var body = JSON.parse(req.rawBody);
var json = {};
json['code'] = 200;
json['massage'] = "请求成功"
var id = req.params.id;
var whereStr = { "id": id }
/*
MongoClient.connect(dburl, { useNewUrlParser: true }, function (err, db) {
if (err) throw err;
var dbo = db.db("vr");
dbo.collection('stationinfo').find(whereStr).toArray(function (err, result) {
if (err) throw err;
console.log(result);
db.close();
json['success'] = 'true'
json['data'] = result;
res.send(json)
});
});
*/
})
})
app.post('/api/addstation', function (req, res) {
console.log(req.path + " 请求");
req.rawBody = '';
req.setEncoding('utf8');
req.on('data', function (chunk) {
req.rawBody += chunk;
});
req.on('end', function () {
var body = JSON.parse(req.rawBody);
var json = {};
json['code'] = 200;
json['message'] = "请求成功"
/*
MongoClient.connect(dburl, { useNewUrlParser: true }, function (err, db) {
if (err) throw err;
var dbo = db.db("vr");
var myobj = body.data;
dbo.collection("stationinfo").insertOne(myobj, function (err, result) {
if (err) throw err;
console.log("站点信息插入成功");
db.close();
json['success'] = 'true'
json['data'] = {};
res.send(json);
});
});
*/
})
})
// login
// app.get('/login', function (req, res) {
// console.log("/login 响应 请求");
// res.send('login');
// })
var server = app.listen(8081, function () {
var host = server.address().address
var port = server.address().port
console.log("应用实例,访问地址为 http://%s:%s", host, port)
})