use-server
Version:
A light-weight, promise-based and middleware-driven web framework
65 lines (54 loc) • 1.94 kB
Markdown
A light-weight, promise-based and middleware-driven web framework
=================================
* Use promise-based middlewares
* Better error handle, you can use `app.on('error', cb)` or `try/catch` with `async/await` in middleware
* Easily use express middlewares(see [Migrate from express](#migrate-from-express))
* The core is light-weight, all functionalities are driven by use-* middlewares, like `use-router`, `use-cache`;
* Support forward functionality: `req.forward('/new/url')`
```js
const createApp = require('use-server');
const app = createApp();
app.use(async (req, resp, next)=>{
console.log('1');
await next();
console.log('3');
})
app.use(async (req, resp, next)=>{
try{
let user = await User.queryDb();
resp.end(user.name);
}catch(e){
resp.statusCode = 500;
resp.end(e.message)
}
console.log('2');
})
app.listen(8080)
```
Currently only support express middleware operations, like `express.Router` and `express.use|all|get|post|...()`
```js
const useServer = require('use-server');
const app = useServer()
//express middlewares
app.express.get('/a', (req, resp, next)=>{
console.log(req.url);
next()
})
app.express.use(require('compression')())
app.express.use(require('body-parser').json())
```
* `require('use-server')()`: create an app server.
* `app.use(...middlewares)`: add middlewares. A middleware is a function like `(req, resp, next)=>{}`.
* `app.listen()`: same as node `server.listen()` function.
* `app.on('error', cb)`: catch uncaught error in middlewares
* `req.basePath`: request context, used in router.
* `req.forward(url)`: forward the request to another url.
* [use-router](https://github.com/kiliwalk/use-router): Router
Licensed under MIT
Copyright (c) 2017 [kiliwalk](https://github.com/kiliwalk)