-
Notifications
You must be signed in to change notification settings - Fork 0
/
node_server.js
42 lines (34 loc) · 1.11 KB
/
node_server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
const express = require("express");
const app = express();
const process = require("process");
const path = require("path");
const bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(express.static(path.join(__dirname, 'frontend')));
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, 'frontend/hangmanStartPage.html'));
});
app.post('/guessWord', (req, res) => {
const word = req.body.word;
const spawnSync = require('child_process').spawnSync,
py = spawnSync('python', ['pythonBackend/hangman.py'], { input: word });
let dataString = '';
let stdout = py.stdout.toString();
let stderr = py.stderr.toString();
let requiredData = null;
if(stderr) {
console.log(stderr);
} else {
requiredData = stdout.split('\n');
requiredData = requiredData[requiredData.length - 4];
requiredData = requiredData.split(',');
requiredData = requiredData.map(elem => {
return elem.split("'")[1];
});
}
res.send(requiredData);
});
app.listen(process.env.PORT || 3000, () => {
console.log("started server");
});