diff options
Diffstat (limited to 'src/server/index.ts')
-rw-r--r-- | src/server/index.ts | 172 |
1 files changed, 122 insertions, 50 deletions
diff --git a/src/server/index.ts b/src/server/index.ts index 84acb72cb..7850fd1d8 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -1,23 +1,75 @@ -import * as express from 'express' -const app = express() -import * as webpack from 'webpack' +import * as express from 'express'; +const app = express(); +import * as webpack from 'webpack'; import * as wdm from 'webpack-dev-middleware'; import * as whm from 'webpack-hot-middleware'; -import * as path from 'path' +import * as path from 'path'; import * as passport from 'passport'; -import { MessageStore, Message, SetFieldArgs, GetFieldArgs, Transferable } from "./Message"; -import { Client } from './Client'; -import { Socket } from 'socket.io'; -import { Utils } from '../Utils'; -import { ObservableMap } from 'mobx'; -import { FieldId, Field } from '../fields/Field'; -import { Database } from './database'; -import { ServerUtils } from './ServerUtil'; -import { ObjectID } from 'mongodb'; -import { Document } from '../fields/Document'; -import * as io from 'socket.io' +import { + MessageStore, + Message, + SetFieldArgs, + GetFieldArgs, + Transferable +} + + from "./Message"; +import { + Client +} + + from './Client'; +import { + Socket +} + + from 'socket.io'; +import { + Utils +} + + from '../Utils'; +import { + ObservableMap +} + + from 'mobx'; +import { + FieldId, + Field +} + + from '../fields/Field'; +import { + Database +} + + from './database'; +import { + ServerUtils +} + + from './ServerUtil'; +import { + ObjectID +} + + from 'mongodb'; +import { + Document +} + + from '../fields/Document'; +import * as io from 'socket.io'; import * as passportConfig from './authentication/config/passport'; -import { getLogin, postLogin, getSignup, postSignup } from './authentication/controllers/user'; +import { + getLogin, + postLogin, + getSignup, + postSignup +} + + from './authentication/controllers/user'; const config = require('../../webpack.config'); const compiler = webpack(config); const port = 1050; // default port to listen @@ -30,17 +82,20 @@ import c = require("crypto"); const MongoStore = require('connect-mongo')(session); const mongoose = require('mongoose'); const bluebird = require('bluebird'); -import { performance } from 'perf_hooks' -import * as fs from 'fs'; -import * as request from 'request' +import { + performance +} + from 'perf_hooks'; +import * as fs from 'fs'; +import * as request from 'request'; const download = (url: string, dest: fs.PathLike) => { request.get(url).pipe(fs.createWriteStream(dest)); } const mongoUrl = 'mongodb://localhost:27017/Dash'; // mongoose.Promise = bluebird; -mongoose.connect(mongoUrl)//.then( +mongoose.connect(mongoUrl) //.then( // () => { /** ready to use. The `mongoose.connect()` promise resolves to undefined. */ }, // ).catch((err: any) => { // console.log("MongoDB connection error. Please make sure MongoDB is running. " + err); @@ -48,77 +103,88 @@ mongoose.connect(mongoUrl)//.then( // }); mongoose.connection.on('connected', function () { console.log("connected"); -}) +} +); app.use(bodyParser.json()); -app.use(bodyParser.urlencoded({ extended: true })); +app.use(bodyParser.urlencoded({ + extended: true +} + +)); app.use(expressValidator()); app.use(expressFlash()); app.use(require('express-session')({ - secret: `${c.randomBytes(64)}`, - resave: true, - saveUninitialized: true, - store: new MongoStore({ + secret: `$ { + c.randomBytes(64) + } + `, resave: true, saveUninitialized: true, store: new MongoStore({ url: 'mongodb://localhost:27017/Dash' - }) -})); + } + ) +} + +)); app.use(passport.initialize()); app.use(passport.session()); app.use((req, res, next) => { res.locals.user = req.user; next(); -}); +} +); app.get("/signup", getSignup); app.post("/signup", postSignup); app.get("/login", getLogin); app.post("/login", postLogin); - -let FieldStore: ObservableMap<FieldId, Field> = new ObservableMap(); - +let FieldStore: ObservableMap<FieldId, + Field> = new ObservableMap(); // define a route handler for the default home page app.get("/", (req, res) => { res.sendFile(path.join(__dirname, '../../deploy/index.html')); -}); +} +); app.get("/hello", (req, res) => { res.send("<p>Hello</p>"); -}) +} +); app.get("/delete", (req, res) => { deleteAll(); res.redirect("/"); -}); +} +); app.use(wdm(compiler, { publicPath: config.output.publicPath -})) - -app.use(whm(compiler)) +} -// start the Express server +)) +app.use(whm(compiler)) // start the Express server app.listen(port, () => { - console.log(`server started at http://localhost:${port}`); -}) + console.log(`server started at http: //localhost:${port}`); +} +) const server = io(); interface Map { [key: string]: Client; } + let clients: Map = {} server.on("connection", function (socket: Socket) { console.log("a user has connected") - Utils.Emit(socket, MessageStore.Foo, "handshooken") - Utils.AddServerHandler(socket, MessageStore.Bar, barReceived) Utils.AddServerHandler(socket, MessageStore.SetField, (args) => setField(socket, args)) Utils.AddServerHandlerCallback(socket, MessageStore.GetField, getField) Utils.AddServerHandlerCallback(socket, MessageStore.GetFields, getFields) Utils.AddServerHandler(socket, MessageStore.DeleteAll, deleteAll) -}) +} +) function deleteAll() { Database.Instance.deleteAll(); } @@ -127,9 +193,7 @@ function barReceived(guid: String) { clients[guid.toString()] = new Client(guid.toString()); } -function addDocument(document: Document) { - -} +function addDocument(document: Document) { } function getField([id, callback]: [string, (result: any) => void]) { Database.Instance.getDocument(id, (result: any) => { @@ -139,7 +203,8 @@ function getField([id, callback]: [string, (result: any) => void]) { else { callback(undefined) } - }) + } + ) } function getFields([ids, callback]: [string[], (result: any) => void]) { @@ -147,11 +212,18 @@ function getFields([ids, callback]: [string[], (result: any) => void]) { } function setField(socket: Socket, newValue: Transferable) { - let val = { ...newValue }; + let val = { + ...newValue + } + ; delete val._id; Database.Instance.update(newValue._id, val) socket.broadcast.emit(MessageStore.SetField.Message, newValue) } server.listen(serverPort); -console.log(`listening on port ${serverPort}`);
\ No newline at end of file +console.log(`listening on port $ { + serverPort +} + +`);
\ No newline at end of file |