xpress2

a node.js web and api framework base on express

Usage no npm install needed!

<script type="module">
  import xpress2 from 'https://cdn.skypack.dev/xpress2';
</script>

README

sample code

there is two full sample projects in /sample/api and /sample/web

var ejs = require('ejs');
var path = require('path');
var Xpress = require('xpress');

//key {string} -if you want to listen on https, you should provide this
//cert {string} -if you want to listen on https, you should provide this
//port.http {number} -if you want to listen on http, you should provide this
//port.https {number} -if you want to listen on https, you should provide this
//you can also provide port.http and port.https, then server will both listen http and https port
var server = new Xpress({
    host: null,
    key: null,
    cert: null,
    port: {
        http: 8001,
        https: null
    }
});

//conf is the same like express set
server.conf('x-powered-by', false);
server.conf('trust proxy', true);
server.conf('views', path.join(__dirname, 'views'));
server.conf('view engine', 'html');
server.conf('view cache', false);
server.engine('html', ejs.__express);


//register middleware on express Application instance
server.use(function(req, res, next){ next(); });
//server.use(cookie());

//register a controller on server without version and channel control
server.get('/', function(req, res, next){
    res.render('home/index');
});

//register a controller on server with version and channel control
server.post('/', {v:1.0, c: 1}, function(req, res, next){
    res.send('/');
});


//create sub router
var homeRouter = new Xpress.Router();

//register a router without version and channel control
homeRouter.get('/', function(req, res, next){
    res.send('/');
});

//register a router with version or channel control
homeRouter.post('/', {v:1.0, c: 1}, function(req, res, next){
    res.send('/');
});

server.sub('/home', homeRouter);

//add a 404 handler
server.error(404, function(err, req, res, next){
    res.json(err.code);
});

//add a 500 handler
server.error(500, function(err, req, res, next){
    res.json(err.code);
});

//start server in single process
server.listen(function(message){
    console.log(message);
});

//start server in cluster , 4 is the count of worker
//server.cluster(4, function(message){
//    console.log(message);
//});

module.exports = server;