bigrest
v2.0.0-rc2
Published
Smart web and restful framework for NodeJS
Downloads
30
Readme
bigrest
Smart web and restful framework for NodeJS. current core is express.
Installation
$ npm install bigrest
Usage
var bigrest = require('bigrest')
API
listen(port, opts)
Binds and listens for connections on the port.
var path = require('path');
var bigrest = require('../index');
var http = bigrest.listen(18080, {
basepath: __dirname,
statics: [{
urlpath: '/files',
filepath: path.join(__dirname, 'files')
}],
compression: {
threshold: 16 * 1024
}
});
XArray(string) was a Array(string) or a Array splited by ",".
XArray(object) was a Array(object) or a Object(object) ",".
Parameter: opts
The options for bigrest framework.
|Key|Type|Default|Description| |---|---|---|---| |debug|boolean|false|debug mode switch| |etag|boolean|false|switch on ETAG generation| |https|Object|undefined|options for HTTPS protocol| |compression|boolean or Object|false|switch or options for compression| |basepath|string|process.cwd()|the base path| |services|XArray(string)|services|the handlers and routers path| |rootwork|function|undefined|the all METHOD handler for '/'| |r404work|function|undefined|the all METHOD handler while response 404| |visitor|function|undefiend|the pre processor the all handler| |viewer|Object(viewer)|undeifned|set html template engine| |limits|Object(limits)|undeifned|the limits for request parse| |statics|XArray(static)|undefiend|set static file engine| |middlewares|Array(function)|[]|the middlewares for express|
https documents https.createServer
compression as options documents compression
Object(viewer)
|Key|Type|Default|Description| |---|---|---|---| |filepath|string|undefined|the template source file path| |render|string or function|undefiend|the template engine| |cache|boolean|opposite with opts.debug|system cache switch|
{
render: swig.renderFile,
filepath: path.join(__dirname, "server", "views")
}
Object(limits)
|Key|Type|Default|Description| |---|---|---|---| |bodySize|number|4mb|the request body size| |uploadSize|number|50mb|the maximum size for file upload|
{
bodySize: 102400,
uploadSize: 1024000
}
Object(static)
|Key|Type|Default|Description| |---|---|---|---| |urlpath|string|undefined|the url path| |filepath|string|undefined|the static file's file path| |options|Object|undefined|the static options|
options means in the express.static
{
urlpath: '/static',
filepath: path.join(__dirname, "static")
}
Directory
|--{basepath}
| |--commons
| | |--test.js
| |--methods
| | |--test.js
| |--services
| | |--test-router.json
| | |--test.js
|--server.js
Global variables
|Name|Path|Export Variables|Export methods| |---|---|---|---| |brcx|commons/|UpperCase named, number & string|all| |brmx|method/|UpperCase named, number & string|lowercase named|
Router And Processor
services/test-router.json
{
"processors": [
{
"url": "/benchmark",
"method": "GET",
"processor": "benchmark_empty",
"parameters": []
}
]
}
services/test.js
exports.benchmark_empty = function(req, res) {
brmx.benchmark(function() {
res.send('OK');
});
};
methods/test.js
exports.benchmark = function(callback) {
callback(null);
};
Router File Format
it has three style, Object(container), Array(group), Object(group).
Object(container)
|Key|Type|Default|Description| |---|---|---|---| |parameters|Array(Parameger)|[]|the common parameters| |interceptor|XArray(string)|[]|the common interceptor names| |failure|stirng|undefined|the default failure processor name| |groups|Array(group)|required|the router group|
Object(group)
|Key|Type|Default|Description| |---|---|---|---| |parameters|Array(Parameger)|[]|the common parameters| |interceptor|XArray(string)|[]|the interceptor names| |failure|stirng|undefined|the failure processor name| |processors|Array(processor)|required|the router parameters|
Object(processor)
|Key|Type|Default|Description| |---|---|---|---| |method|XArray(string)|required|METHOD| |url|XArray(string)|required|URL| |parameters|Array(parameger)|[]|the common parameters| |failure|stirng|undefined|the failure processor name| |processor|string|required|the processor name| |workdata|Object|undefined|attach to req| |workparam|Object|undefined|attach to req|
Object(parameter)
This is a Array type model definition in field-inspector, click it for more detail.
req.files Information
It's array of file, And each file contains the following information:
|Key|Description|
|---|---|
|name
| Field name specified in the form |
|type
| Mime type of the file |
|size
| Size of the file in bytes |
|path
| The full path to the temp uploaded file |
|originalFilename
| Name of the file on the user's computer |