A Web Server based on turbo HTTP
- Twice as fast as other node frameworks based on http module.
- Batteries included. Static files, sessions, router, body parser, cors by default.
- Configure via config file.
$ npm install turbo-serv --save
$ mkdir my-app && cd my-App
$ npm init
Edit start in your package.json. Turbo server uses mjs modules. So works on
the latest nodejs with experimental modules set.
{
"name": "my-app",
"scripts": {
"start": "node --experimental-modules index.mjs"
},
}
Create index.mjs in my-app folder
import App from 'turbo-serv'
const app = new App()
const router = app.getRouter()
router.get('/', function () {
this.res.send('Hello World')
})
app.listen(8080)
run
$ npm start
const app = new App() creates a new app.
app.listen(port). If process.env.PORT is set, that is taken as PORT. If not
the port given to app.listen is taken. If both are not given, 5000 is taken as PORT.
Statics files are served from public folder by default. Just create a public folder
in my-app and put your static files there.
Get the router with app.getRouter().
Set your routes with router.get and router.post
All handlers are called with the Request object as this. Response object is
this.res.
If the handler returns a value other than undefined the next handler is called
with the value. If the handler is done, don't return anything.
Handlers can be both asynchronous or synchronous.
send(data) - If data is string or Buffer type, set the Content-Type before calling send. If type is Object data is sent as 'application/json'.
sendFile(absPath) - Given an absolute path, will send a file as response.
redirect(url) - Sends a 302 statusCode and redirects to given url
- Nested Routers