our-stop-server
Version:
Stop your computer using your phone or your tablet, from your bed or your couch and start .bat file from your own computer
97 lines (79 loc) • 2.23 kB
JavaScript
var path = require('path')
var util = require('util')
var express = require('express')
var address = require('network-address')
var updateNotifier = require('update-notifier')
var powerOff = require('power-off')
var sleepMode = require('sleep-mode')
// for open a window
var child_process = require('child_process')
const {exec} = require('child_process')
var pkg = require('./package.json')
var app = express()
app.use(express.static(path.join(__dirname, 'public')))
app.delete('/', function (req, res) {
res.end()
util.log('exit')
process.exit()
})
app.post('/power-off', function (req, res) {
powerOff(function (err) {
if (err) {
util.log(err)
res.status(500).json({ error: 'Can\'t run power-off' })
} else {
res.end()
}
})
})
app.post('/sleep', function (req, res) {
sleepMode(function (err) {
if (err) {
util.log(err)
res.status(500).json({ error: 'Can\'t run sleep' })
} else {
res.end()
}
})
})
app.get('/address', function (req, res) {
res.json({ address: address() })
})
app.get('/update', function (req, res) {
updateNotifier({
pkg: pkg,
callback: function (err, update) {
if (err) return res.json({})
res.json(update)
}
})
})
app.get('/open', function (req, res) {
console.log("[ Get .bat path: " + req.query.path + " & Get .bat name: " + req.query.name + " ]")
child_process.execFile(req.query.name, null, {cwd:req.query.path}, function(error,stdout,stderr) {
if(error !== null){
util.log("exec error"+error)
}
else util.log("成功")
util.log('stdout: ' + stdout)
util.log('stderr: ' + stderr)
// res.setHeader("Connection", "Close"); // close connection so as to excute /open repeatly
res.end()
})
})
const appName = 'chrome.exe'
app.get('/chrome', function (req, res) {
// Kills a process based on filename of the exe and all child processes
exec(`taskkill /im ${appName} /t /f`, (err, stdout, stderr) => {
if (err) {
throw err
}
console.log('stdout', stdout)
console.log('stderr', err)
})
res.end()
})
var port = 5708
app.listen(port, function () {
util.log('our-stop-server listening on port ' + port)
})