|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- var DB = require("./js/db");
- var express = require("express");
- var fs = require("fs");
- var WebEvents = require("webevents");
-
- var db = DB("db.json");
- var conf = JSON.parse(fs.readFileSync("conf.json"));
-
- var events = WebEvents();
-
- var app = express();
- app.use(express.static("web"));
- app.listen(conf.port);
-
- app.post("/webevents/*", events.handle);
- app.get("/client.js", (req, res) => {
- fs.createReadStream("node_modules/webevents/client.js")
- .pipe(res)
- .on("error", err => res.end(err.toString()));
- });
-
- app.get("/list", (req, res) => {
- res.json(db.list);
- });
-
- app.get("/words", (req, res) => {
- res.json(db.words);
- });
-
- app.post("/remove/:index", (req, res) => {
- res.json({});
- if (!req.params.index)
- return;
-
- delete db.list[req.params.index];
-
- events.emit("remove", { index: req.params.index });
-
- // Clear the entire list array if there are no elements in it
- var containsElems = false;
- for (var i in db.list) {
- if (db.list[i] != null) {
- containsElems = true;
- break;
- }
- }
- if (!containsElems) {
- db.list = [];
- }
-
- db.flush();
- });
-
- app.post("/add/:name", (req, res) => {
- res.json({});
- if (!req.params.name)
- return;
-
- var name = req.params.name.toLowerCase().trim();
-
- db.list.push(name);
- events.emit("add", { name: name, index: db.list.length - 1 });
-
- var word = db.words.filter(w => w.name === name)[0];
- if (word)
- word.count += 1;
- else
- db.words.push({ name: name, count: 1 });
-
- db.flush();
- });
-
- console.log("Server listening on port "+conf.port);
|