🚨 Shai-Hulud Strikes Again:834 Packages Compromised.Technical Analysis →
Socket
Book a DemoInstallSign in
Socket

webwork

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

webwork

restfull api gate app framework

latest
npmnpm
Version
0.1.14
Version published
Maintainers
1
Created
Source

Introduction

Simplicity is the ultimate sophistication.

  • Less dependence(no any external dependence)
  • Less code(about 400 line pure javascript code)
  • High performance(5k+ tps on one core)
  • Perfect foundation support
    • full express style router
    • default query body(post) parser
    • webwork(java) style interceptor
    • Automatic bigpiple optimization support

How To Use

install

$ npm install webwork

hello world

//use shared webwork instance and bind any http method to any url
var app = require('webwork');
app.bind('/*',function(req,resp){
	resp.end('Hello WebWork');
});
.start(8080)

Full Examples

//new webwork instance
const WW = require('webwork');
const app = new WW();

//bind default view resolver
let LiteEngine = require('lite');
let engine = new LiteEngine('./');
app.resolveView('*.xhtml',engine.render.bind(engine))

//bind a resource as restfull api
app.bind('/resource/:id',{
    function get(req,resp){ //http get
        const id = req.params.id;
        this.title = 'Hello Webwork';
        this.content = 'resource id:'+id;
        //no output(resp.end), no view is  returned,
        //automatically encoded as json format
    },
    async function post(req,resp){ //async function is recommended at all times;
        var body = await req.body;	    //create: http post
        this.id = createXXX.....
        //json output
    },
    function * del(req,resp){		 //delete: http delete
        const id = req.params.id;
        this.status = deleteXXX.....
    }
});

//bind get http method for any other url and use template: '/success.xhtml'
app.bind('*',{
    function get(req,resp){
        this.title = 'Hello Webwork';
        this.content = 'url path:'+req.params[0];
        return '/success.xhtml'
    }
});

app.start();

Use Template

lite template is recomanded
  • auto bigpiple support
  • auto bigrender support
  • and others....
let LiteEngine = require('lite');
let engine = new LiteEngine('./');
app.resolveView('*.xhtml',engine.render.bind(engine))
for others
const path = require('path');
const jade = require('jade');
const jadeRoot = './jade/';
app.resolveView('*.xhtml',function*(viewPath,model,req,out){
	for(var n in model){
		model[n] = yield model[n];
	}
	// renderFile 
	const tplFile = path.join(jadeRoot,viewPath);
	const html = jade.renderFile(tplFile, model);
	out.end(html)
})

Keywords

web

FAQs

Package last updated on 06 Jul 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts