let express = require('express') let logger = require('morgan') let bodyParser = require('body-parser') const axios = require('axios') let app = express() app.use(bodyParser.json()) app.use(bodyParser.urlencoded({ extended: true })) app.use(logger('dev')) app.use(express.static('views')) app.set('view engine', 'ejs') app.set('views', __dirname + '/views') var led_array = { power: false, brightness: 0, color: 0 } app.get('/', function (request, responce) { responce.render('index.ejs', {led_array:led_array}) }) app.post('/setlight', async function (request, responce) { if (dataVal5(request)) { led_array.power = s2b(request.body.state) led_array.brightness = Number(request.body.brightness) led_array.color = Number(request.body.color) // Now make an api call to the led controller axios({ url: 'http://192.168.0.23:5000/setState', method: 'post', data: { power: led_array.power, brightness: led_array.brightness, color: led_array.color } }) responce.send({success: true, error: false}) } else { responce.send({ success: false, error: "Data Validation" }) console.log(request.body) } }) app.post('/getlight', async function (request, responce) { rsp = { power: led_array.power, brightness: led_array.brightness, color: led_array.color } responce.send({led_array: rsp}) }) function dataVal5(data) { if ((data.body.state == 'true' || data.body.state == 'false' || data.body.state == true || data.body.state == false) && Number(data.body.brightness) && String(data.body.color)) { return true } return false } function s2b(string) { string = String(string) switch (string.toLowerCase().trim()) { case "true": case "yes": case 'on': case "1": case true: return true case "false": case "no": case 'off': case "0": case false: case null: return false default: return false } } app.get('*', function (request, responce) { responce.render('404.ejs') }) app.post('*', function (request, responce) { responce.status(404).send({ success: false, error: "404" }) }) var port = 5555 app.listen(port, function () { console.log('Server running on port ' + port) })