express-cli/server.js

68 lines
2.1 KiB
JavaScript

import 'log'
import 'colors'
import minimist from 'minimist'
import express from 'express'
global.express = express
import morgan from 'morgan'
import serveCors from './serve-cors'
//import sstatic from 'serve-static'
import serveIndex from 'serve-index'
import { resolve } from 'path'
const args = minimist( process.argv.slice(2) ),
help = args.help || args.h,
port = args.port || args.p || 80,
statik = args.static || args.s,
index = statik && ( args.index || args.i || true ),
cors = args.cors || args.c,
routes = args.routes || args.r,
folder = args._[0] || ''
help && log `Usage: express [options] path
Options:
-h, --help Show this help
-p, --port Set the port to listen (default: 80)
-s, --static=[folder] Serve static content. If true the folder used
is '.' otherwise the given folder is used.
-i, --index Generate index when a folder is requested
-c, --cors
-r, --routes=[path] Loads an express router module
`
help && process.exit()
process.cwd( folder )
console.log( args, __dirname, process.cwd(), resolve(process.cwd(),folder) )
const resolved = {
static: resolve( folder, typeof statik == 'boolean' ? '.' : statik ),
routes: resolve( folder, typeof routes == 'boolean' ? 'routes.js' : routes ),
},
app = express()
cors && app.use( serveCors )
//app.engine('html', ejs.renderFile);
//app.set('views', __dirname + '/views');
//app.use( bodyParser )
//app.use(express.cookieParser());
//app.use(express.methodOverride());
app.use( morgan('combined') )
//app.use(express.session({ secret: 'c0ns0l3F0r3v3r' }));
//app.use(passport.initialize());
//app.use(passport.session());
//app.use( app.router )
//console.log( (await import(resolved.routes)).default )
routes && app.use( '/', (await import(resolved.routes)).default )
statik && app.use( express.static(resolved.static), index && serveIndex(resolved.static, {'icons': true, view: 'details'}) )
app.listen( port )
statik && log `Started static web server: ${resolved.static.cyan}s`
routes && log `Routes file loaded: ${resolved.routes.cyan}s`
log `Server listening on Port: ${(''+port).yellow}s`