sernite
v0.9.8
Published
Server-side scripting engine
Downloads
4
Maintainers
Readme
Sernite is a higher level web framework for more modular and serverless-like server-side scripting.
Table of Contents
Installation
Use the npm to install sernite.
$ npm install -g sernite
Getting Started
$ cd /my/projects/folder # open your favorite project folder
$ mkdir hello_world && cd hello_world # create a folder and open it
$ sernite init # initialize sernite
$ sernite run
For more detailed tutorial, visit webpage
Concepts
Scripts
Sernite scripts are handlers that invoked in sub-processes when their assigned request arrived at the Sernite server. \ scripts can be assigned from
sernite.json
file// Other configurations.. "scripts" : [ { "url" : "/echo/:message", "path":"scripts/echo.js", "params":[ "url:message", "amazingParam" ], "methods": ["GET"] } ] // Other configurations..
echo.js will be invoked when a
GET /echo/:message
request arrived. In sernite scripts, there are two special global variablesparams
: an array contains all parsed parameters. In example; forGET /echo/hello
request, params array looks like that['hello','amazingParam']
done
: a function that finalize the process with or without an errorSernite scripts must import a function with two paramaters:
send
: sends your message to web client throughstdout
nitmsg
: sends your query to the nit and waits for its response and returns// scripts/echo.js // for GET /echo/hi module.exports = async function(send,nitmsg){ let message = params[0] // hi send(message) // send to client `hi` }
Nits
Nit is a just simple node.js module that exports a function which has two parameters and returns a response.
module.exports = async function(query){ let resp = ""; //some processes... return resp; }
Upcoming Features
- Multiple language support for sernite scripts. considering:
- Go
- Python
- Haskel
- Lua
- Java
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.