diff options
author | Eleanor Eng <eleanor_eng@brown.edu> | 2019-03-12 17:44:11 -0400 |
---|---|---|
committer | Eleanor Eng <eleanor_eng@brown.edu> | 2019-03-12 17:44:11 -0400 |
commit | 96dc0349945974a5f1c0b1329ec035dcb9dfde0e (patch) | |
tree | 2a8bae2138aa0772dd34701443d61f82855662be /src/server/index.ts | |
parent | 1f038048612e01d0ada6deb9ff2a056cb8d13702 (diff) | |
parent | 618e66a5a070f1aac9224bd3f44b76a5ac314bfa (diff) |
working submenu; dimensions now relative to vw, vh
Diffstat (limited to 'src/server/index.ts')
-rw-r--r-- | src/server/index.ts | 200 |
1 files changed, 76 insertions, 124 deletions
diff --git a/src/server/index.ts b/src/server/index.ts index 7850fd1d8..0d0b65b22 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -1,75 +1,24 @@ -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 formidable from 'formidable' 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 @@ -82,20 +31,17 @@ import c = require("crypto"); const MongoStore = require('connect-mongo')(session); const mongoose = require('mongoose'); const bluebird = require('bluebird'); -import { - performance -} - - from 'perf_hooks'; +import { performance } from 'perf_hooks' import * as fs from 'fs'; -import * as request from 'request'; +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); @@ -103,88 +49,102 @@ 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(); + +// IMAGE UPLOADING HANDLER +app.post("/upload", (req, res, err) => { + let form = new formidable.IncomingForm() + form.uploadDir = __dirname + "/public/files/" + form.keepExtensions = true + // let path = req.body.path; + console.log("upload") + form.parse(req, (err, fields, files) => { + console.log("parsing") + let names: any[] = []; + for (const name in files) { + let file = files[name]; + names.push(`/files/` + path.basename(file.path)); + } + res.send(names); + }); +}) + +app.use(express.static(__dirname + '/public')); +app.use('/images', express.static(__dirname + '/public')) + +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.use("/corsProxy", (req, res) => { + req.pipe(request(req.url.substring(1))).pipe(res); +}); -); app.get("/delete", (req, res) => { deleteAll(); res.redirect("/"); -} +}); -); app.use(wdm(compiler, { publicPath: config.output.publicPath -} +})) + +app.use(whm(compiler)) -)) -app.use(whm(compiler)) // start the Express server +// 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(); } @@ -193,7 +153,9 @@ 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) => { @@ -203,8 +165,7 @@ function getField([id, callback]: [string, (result: any) => void]) { else { callback(undefined) } - } - ) + }) } function getFields([ids, callback]: [string[], (result: any) => void]) { @@ -212,18 +173,9 @@ function getFields([ids, callback]: [string[], (result: any) => void]) { } function setField(socket: Socket, newValue: Transferable) { - let val = { - ...newValue - } - ; - delete val._id; - Database.Instance.update(newValue._id, val) + Database.Instance.update(newValue._id, newValue) 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 |