leajs-server
v0.1.2
Published
extendable, configuration based http server
Downloads
290
Readme
Leajs
extendable, configuration based http server.
Features
Install
npm install --save leajs-server
Usage
# cli
usage: leajs <options> (config file)
options:
-w, --watch restart server on changes in config
-p, --prod sets NODE_ENV to "production"
--port [port] opens server on [port]
config file is optional and defaults to "leajs.config.[js|json|coffee|ts]"
in "server/" and "/"
// in node
Leajs = require("leajs-server")
// available options
// name (String) Default:"leajs.config" Name of the configuration file
// watch (Boolean) Starts the server in watch mode
// config (Object) Overwrites configuration file
Leajs(options)
.then((leajs) => {
// finished
leajs.close() // returns promise
})
.catch((e) => {
// got some error
})
leajs.config
Read by read-conf, from ./
or ./server/
by default.
module.exports = {
// namespace for the server e.g. /leajs
base: "", // String
// Disable some of the default plugins
// $item (String) Package name or filepath (absolute or relative to cwd) of plugin
disablePlugins: null, // Array
// Default file to serve when in folder
index: "index.html", // String
// Listen object for httpServer
// type: Object
listen: {
// Hostname for listening
// Default: if inProduction then "localhost" else null
host: null, // String
// Port or socket to listen to
// Default: if process.env.LISTEN_FDS then {fd: 3} else 8080
port: null, // [Object, Number]
},
// Leajs plugins to load
// type: Array
// $item (String) Package name or filepath (absolute or relative to cwd) of plugin
plugins: ["leajs-files","leajs-folders","leajs-encoding","leajs-cache","leajs-locale","leajs-eventsource","leajs-redirect"],
// Custom respond function for quick debugging or testing
respond: null, // [Function, Array]
// Level of logging
verbose: 1, // Number
// …
}
Custom respond function
module.exports = {
respond: (req) => {
// req.request raw request object
if (req.url == "/hello"){
req.body = "hello world!"
}
}
}
Plugins
You should read the (short) docs of the bold ones.
Activated by default:
- leajs-files - serve files
- leajs-folders - serve folders
- leajs-encoding - handles the encoding
- leajs-cache - handles caching of resources
- leajs-locale - simplifies handling locale header
- leajs-eventsource - eventsource implementation
- leajs-redirect - manages redirects
Installed and activated manually
- leajs-spa-router - single page router
- leajs-webpack - webpack development and hot reload middleware
License
Copyright (c) 2018 Paul Pflugradt Licensed under the MIT license.