var express = require('express') var path = require("path"); var mysql = require('mysql') //var alert = require('alert') //var router = express.Router() var app = express() const {get} = require('http') const multer = require('multer') var childProcess = require('child_process') const bodyParser = require('body-parser') const fs = require('fs') //const document = require('document') var jsdom = require("jsdom"); const { NULL } = require('mysql/lib/protocol/constants/types'); var JSDOM = jsdom.JSDOM; var document = new JSDOM().window.document; var execSync = require("child_process").execSync; var sys = require('sys'); //var exec = require('child_process').exec //const cp = require('child_process'); var session = require("express-session"); var FileStore = require('session-file-store')(session); var identityKey = 'skey'; app.use( session({ name: identityKey, secret: "jhh", store: new FileStore(), //加密存储 resave: false, //客户端并行请求是否覆盖 saveUninitialized: true, //初始化session存储 cookie: { maxAge: 1000*60*10 // 这一条 是控制 sessionID 的过期时间的!!! }, }) ); app.use(express.json()) app.use(express.urlencoded({ extended: true })) app.use(express.static('./')) /** * 配置MySql */ var connection = mysql.createConnection({ host : '192.168.43.65', user : 'root', password : '427318Aa', database : 'test', port:'3306' }); connection.connect(); app.use('/public', express.static('public')); // 设置静态文件的中间件 app.use(bodyParser.urlencoded({ extended: false })); // 判断请求体是不是json,不是的话把请求体转化为对象 app.use(multer({ dest: 'tmp/' }).array('file'));//multer中间件用于上传表单型数据,基本属性为dest,会添加file对象到request对象中,包含对象表单上传的文件信息 app.get('/',function (req,res) { res.sendfile(__dirname + "/login.html" ); }) /*app.get('/',function(req,res){ res.sendFile(path.join(__dirname,"/login.html")) //_dirname:当前文件的路径,path.join():合并路径 }) /** * 实现登录验证功能 */ var ppcookie = '' var ppname = '' var pppwd = '' app.get('/login', function (req, res) { var response = { "name":req.query.name, "password":req.query.pwd, }; /*var selectSQL = "select * from UserInfoTest where User_Name = '" + name + "' and User_Password = '" + password + "'";*/ var selectSQL = "select uname,pwd from user where uname = '" + req.query.name + "' and pwd = '" + req.query.pwd + "'"; connection.query(selectSQL, function (err, result) { if (err) { console.log('[login ERROR] - ', err.message); return; } if (result == '') { console.log("帐号密码错误"); res.end("The account does not exist or the password is wrong!"); } else { console.log(result); console.log("OK"+'123'); ppname = req.query.name pppwd = req.query.pwd // res.redirect("/public/" + "ok1.html") // dummy = childProcess.spawn('python' ,['./tmp.py'] ,{cwd: path.resolve(__dirname, './')}) const ls = childProcess.spawn('python3' ,['./connect.py', '--ip','192.168.43.241', '--port','7777','login','--user',req.query.name,'--password',req.query.pwd],{cwd: path.resolve(__dirname, './')}) ls.stdout.on('data', function (data){ //console.log('sdjfksjdfklajklfdjalkjfklda') //req.session.cookie = data.toString().trim(); var sess = req.session; sess.regenerate(function(err){ //添加session信息 req.session.name = data.toString().trim(); req.session.user = req.query.name; req.session.pwd = req.query.pwd; }) var a = data.toString() a = a.trim() ppcookie = a console.log(ppcookie); var start = new Date(); setTimeout(function(){ console.log(req.session.name); console.log(req.session.user); console.log(req.session.pwd); res.redirect("/public/" + "ok1.html") },2000) // console.log(a[]); }) //execute('python tmp.py') // execute('python connect.py --ip 10.129.16.173 --port 7777 login --user wufayuan --password 113818'); /* const ls = childProcess.spawn('python3' ,['connect.py', '--ip','192.168.43.241', '--port','7777','login','--user','wufayuan','--password','113818'],{cwd: path.resolve(__dirname, './') }) ls.stdout.on('data', function(data){ sys.print(data); }); ls.stderr.on('data', (data) => { console.error(`stderr: ${data}`); });*/ } }); console.log(response); }) /**connection.query(selectSQL,function (err,rs) { if (err) throw err; console.log(rs); console.log('OK'); res.sendfile(__dirname + "/public/" + "ok.html" ); }) })**/ app.get('/register.html',function (req,res) { res.sendfile(__dirname+"/lndex.html"); }) /** * 实现注册功能 */ app.get('/register',function (req,res) { var name=req.query.name; var pwd = req.query.pwd; var selectSQL = "select uname,pwd from user where uname = '" + req.query.name+"'"; connection.query(selectSQL, function (err, result) { if (err) { console.log('[login ERROR] - ', err.message); return; } if (result.length) { res.send("The account exist!"); } else { var user = { uname: name, pwd: pwd ,finame:NULL,email:NULL,phone:NULL}; connection.query('insert into user set ?', user, function (err, rs) { // if (err) throw err; console.log('ok'); res.redirect('login.html'); const ls = childProcess.spawn('python3' ,['./connect.py', '--ip','192.168.43.241', '--port','7777','register','--user',name,'--password',pwd],{cwd: path.resolve(__dirname, './') }) }) } }) }) app.get('/ok1.html',function (req,res) { res.redirect("/public/"+"ok1.html"); }) /*var server=app.listen(3300,function () { console.log("start"); })*/ //const express = require('express'); const timeout = require('connect-timeout'); const { createProxyMiddleware } = require('http-proxy-middleware'); // HOST 指目标地址 PORT 服务端口 const HOST = 'http://192.168.43.64:7777', PORT = '3300'; // 超时时间 const TIME_OUT = 1000 * 1e3; // 设置端口 app.set('port', PORT); // 设置超时 返回超时响应 app.use(timeout(TIME_OUT)); app.use((req, res, next) => { if (!req.timedout) next(); }); // 设置静态资源路径 app.use('/', express.static('static')); // 反向代理(这里把需要进行反代的路径配置到这里即可) // eg:将/api 代理到 ${HOST}/api // app.use(createProxyMiddleware('/api', { target: HOST })); // 自定义代理规则 app.use(createProxyMiddleware('/api', { target: HOST, // target host changeOrigin: true, // needed for virtual hosted sites ws: true, // proxy websockets pathRewrite: { '^/api': '', // rewrite path } })); // 监听端口 app.listen(app.get('port'), () => { console.log(`server running ${PORT }`); }); function execute(cmd) { //调用cmd命令 execSync(cmd, { cwd: './' }, function (error, stdout, stderr) { if (error) { console.error(error); } else { console.log("executing success!") } }) } app.get('/check', function (req, res) { if(!!req.session.user){ var logo=req.query.logo; console.log(logo); // console.log(ppcookie); a = ppcookie console.log(a); //const ls = childProcess.spawn('python3' ,['./connect.py','--word',logo,'--cookie',a]) const ls = childProcess.spawn('python3' ,['./tmp.py','--ip','192.168.43.241','--port','7777','crawling','--word',logo,'--pages_start',1,'--pages_end',3,'--cookie',req.session.name]) ls.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); ls.stderr.on('data', (data) => { console.error(`stderr: ${data}`); }); ls.on('close', function(code){ res.redirect("/tmmps.html") })} else{ res.send('未登录') } /*exec('python connect.py --ip 10.129.16.173 --port 7777 crawling --word '+logo +' --pages_start 1 --pages_end 3 --cookie '+a, { // timeout: 0, // 超时时间 cwd: path.resolve(__dirname, './'), // 可以改变当前的执行路径 }, function (err, stdout, stderr) { res.redirect("/tmmps.html") return // 执行结果 })*/ //execute('python connect.py --ip 192.168.43.64 --port 7777 crawling --word '+logo +' --pages_start 1 --pages_end 5 --cookie '+a); //execute('python connect.py --ip 192.168.43.65 --port 7777 crawling --word computer --cookie b07f9e6461343a07635438925b0b93f9e0f9f084 --pages_start 1 --pages_end 3'); }) app.post('/cook', function (req, res) { console.log(req.session.user); res.redirect('/public/ok2.html'); }) app.post('/cook2', function (req, res) { req.session.destroy(function(err) { res.redirect('/login.html'); }) ppname = '0' pppwd = '0' }) app.get('/check1',function (req, res) { console.log(req.session.user) if(!!req.session.user){ const ls = childProcess.spawn('python3' ,['./ceshi03.py','--id',req.session.user],{cwd: path.resolve(__dirname, './') }) ls.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); ls.stderr.on('data', (data) => { console.error(`stderr: ${data}`); }); ls.on('close', function(code){ res.redirect("/comment.html") return; })} else{ res.send('未登录') } }) app.get('/std',function (req, res) { if(!!req.session.user){ console.log(req.session.user); var finame=req.query.finame; var email = req.query.email; var phone = req.query.phone; var selectSQL = "select uname,pwd from user where uname = '" + req.session.user + "' and pwd = '" + req.session.pwd + "'" connection.query(selectSQL, function (err, result) { console.log(req.session.user); res.redirect('/public/ok1.html'); var user = {finame: finame,email:email, phone:phone}; sql = "update user set ? where uname = '" + req.session.user + "' and pwd = '" + req.session.pwd + "'" connection.query(sql, user, function (err, rs) { // if (err) throw err; console.log('ok'); }) })} else{ res.send('未登录') } }) app.post('/std1',function (req, res) { res.redirect('/public/ok3.html') }) app.post('/std3',function (req, res) { console.log('req.session.user'); var delSql = "DELETE FROM user_info where user_name = "+ req.session.user; connection.query(delSql,function (err, result) { if(err){ console.log('[DELETE ERROR] - ',err.message); return; } }); var delSql1 = "DELETE FROM user where uname = "+ req.session.user; connection.query(delSql1,function (err, result) { if(err){ console.log('[DELETE ERROR] - ',err.message); return; //res.redirect('/login.html') } }); res.redirect('/login.html') }) app.get('/std2',function (req, res) { var pwd1=req.query.pwd1; var pwd2=req.query.pwd2; var pwd3=req.query.pwd3; if(pwd3 != pwd2){ console.log("error") res.send("两次输入的密码不一样"); } if(pwd3 == pwd2){ var selectSQL = "select pwd from user where uname = '" + req.session.user + "' and pwd = '" + req.session.pwd + "'" connection.query(selectSQL, function (err, result) { if (req.session.pwd != pwd1) { res.send("当前密码输入错误"); console.log("error") } if(req.session.pwd == pwd1){ var user = {pwd:pwd2}; sql = "update user set ? where uname = '" + req.session.user + "' and pwd = '" + req.session.pwd + "'" connection.query(sql, user, function (err, rs) { // if (err) throw err; console.log('ok'); res.redirect('/public/ok1.html'); pppwd = pwd2 }) var user1 = {user_password:pwd2} q = "update user_info set ? where user_name = '" + req.session.user + "' and user_password = '" + req.session.pwd + "'" connection.query(q, user1, function (err, rs) { // if (err) throw err; console.log('ok'); //res.redirect('/public/ok1.html'); //pppwd = pwd2 }) } }) } })