feat(server): made server "work"

This commit is contained in:
Roberto Tonino 2021-03-31 21:32:08 +02:00
parent fe0439fd19
commit bc773460c1
8 changed files with 100 additions and 71 deletions

34
server/dist/app.js vendored
View File

@ -1,34 +0,0 @@
'use strict'
// import path from 'path'
//
// import express, { Application } from 'express'
// import cookieParser from 'cookie-parser'
// import logger from 'morgan'
// import indexRouter from './routes'
// import usersRouter from './routes/users'
//
// const app: Application = express()
// // const port = 3000
//
// app.use(logger('dev'))
// app.use(express.json())
// app.use(express.urlencoded({ extended: false }))
// app.use(cookieParser())
// app.use(express.static(path.join(__dirname, 'webui', 'public')))
//
// app.use('/', indexRouter)
// app.use('/users', usersRouter)
//
// export default app
const __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { default: mod }
}
Object.defineProperty(exports, '__esModule', { value: true })
const express_1 = __importDefault(require('express'))
// rest of the code remains same
const app = express_1.default()
const PORT = 8000
app.get('/', (req, res) => res.send('Express + TypeScript Server'))
app.listen(PORT, () => {
console.log(`⚡️[server]: Server is running at https://localhost:${PORT}`)
})

View File

@ -1,12 +0,0 @@
'use strict'
const __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { default: mod }
}
Object.defineProperty(exports, '__esModule', { value: true })
const express_1 = __importDefault(require('express'))
const router = express_1.default.Router()
/* GET home page. */
router.get('/', (req, res, next) => {
res.render('index', { title: 'Express' })
})
exports.default = router

View File

@ -1,12 +0,0 @@
'use strict'
const __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { default: mod }
}
Object.defineProperty(exports, '__esModule', { value: true })
const express_1 = __importDefault(require('express'))
const router = express_1.default.Router()
/* GET users listing. */
router.get('/', function (req, res, next) {
res.send('respond with a resource')
})
exports.default = router

View File

@ -2,13 +2,12 @@
"name": "deemix-gui", "name": "deemix-gui",
"version": "0.0.0", "version": "0.0.0",
"private": true, "private": true,
"type": "module",
"scripts": { "scripts": {
"start-old": "node bin/www", "start-old": "node bin/www",
"start": "nodemon src/app.ts", "start": "nodemon src/app.ts",
"lint": "eslint . --fix", "lint": "eslint . --fix",
"prebuild" : "yarn lint", "prebuild": "yarn lint",
"build": "tsc" "build": "tsc"
}, },
"dependencies": { "dependencies": {
"cookie-parser": "1.4.4", "cookie-parser": "1.4.4",
@ -19,6 +18,7 @@
"devDependencies": { "devDependencies": {
"@nuxtjs/eslint-config": "6.0.0", "@nuxtjs/eslint-config": "6.0.0",
"@types/cookie-parser": "1.4.2", "@types/cookie-parser": "1.4.2",
"@types/debug": "4.1.5",
"@types/express": "4.17.11", "@types/express": "4.17.11",
"@types/morgan": "1.9.2", "@types/morgan": "1.9.2",
"@types/node": "14.14.37", "@types/node": "14.14.37",

View File

@ -1,27 +1,109 @@
import path from 'path' import path from 'path'
import http from 'http'
import express, { Application } from 'express' import express, { Application } from 'express'
import cookieParser from 'cookie-parser' import cookieParser from 'cookie-parser'
import logger from 'morgan' import logger from 'morgan'
import debug0 from 'debug'
import indexRouter from './routes' import indexRouter from './routes'
import usersRouter from './routes/users' import usersRouter from './routes/users'
const ROOT_DIR = path.resolve('../')
const app: Application = express() const app: Application = express()
const port = 6595
app.use(logger('dev')) app.use(logger('dev'))
app.use(express.json()) app.use(express.json())
app.use(express.urlencoded({ extended: false })) app.use(express.urlencoded({ extended: false }))
app.use(cookieParser()) app.use(cookieParser())
app.use(express.static(path.join(__dirname, 'webui', 'public'))) app.use(express.static(path.join(ROOT_DIR, 'webui', 'public')))
app.use('/', indexRouter) app.use('/', indexRouter)
app.use('/users', usersRouter) app.use('/users', usersRouter)
try { /**
app.listen(port, (): void => { * Module dependencies.
console.log(`Connected successfully on port ${port}`) */
})
} catch (error) { const debug = debug0('deemix-gui:server')
console.error(`Error occured: ${error.message}`) /**
* Get port from environment and store in Express.
*/
const port = normalizePort(process.env.PORT || '3000')
app.set('port', port)
/**
* Create HTTP server.
*/
const server = http.createServer(app)
/**
* Listen on provided port, on all network interfaces.
*/
server.listen(port)
server.on('error', onError)
server.on('listening', onListening)
/**
* Normalize a port into a number, string, or false.
*/
function normalizePort (val:string) {
const port = parseInt(val, 10)
if (isNaN(port)) {
// named pipe
return val
}
if (port >= 0) {
// port number
return port
}
return false
}
/**
* Event listener for HTTP server "error" event.
*/
function onError (error: any) {
if (error.syscall !== 'listen') {
throw error
}
const bind = typeof port === 'string'
? 'Pipe ' + port
: 'Port ' + port
// handle specific listen errors with friendly messages
switch (error.code) {
case 'EACCES':
console.error(bind + ' requires elevated privileges')
process.exit(1)
case 'EADDRINUSE':
console.error(bind + ' is already in use')
process.exit(1)
default:
throw error
}
}
/**
* Event listener for HTTP server "listening" event.
*/
function onListening () {
const addr = server.address()
if (addr) {
const bind = typeof addr === 'string'
? 'pipe ' + addr
: 'port ' + addr.port
debug('Listening on ' + bind)
}
} }

View File

@ -3,7 +3,7 @@ import express from 'express'
const router = express.Router() const router = express.Router()
/* GET home page. */ /* GET home page. */
router.get('/', (req, res, next) => { router.get('/', (_, res) => {
res.render('index', { title: 'Express' }) res.render('index', { title: 'Express' })
}) })

View File

@ -294,6 +294,11 @@
dependencies: dependencies:
"@types/express" "*" "@types/express" "*"
"@types/debug@4.1.5":
version "4.1.5"
resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd"
integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==
"@types/express-serve-static-core@^4.17.18": "@types/express-serve-static-core@^4.17.18":
version "4.17.19" version "4.17.19"
resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz#00acfc1632e729acac4f1530e9e16f6dd1508a1d" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz#00acfc1632e729acac4f1530e9e16f6dd1508a1d"

2
webui

@ -1 +1 @@
Subproject commit 55125684cbaf4c4ac62d63e9713ceb69e2fceb86 Subproject commit 39a178cfc7d67387c63323038a8533d6d84b0cc1