1.0.0 • Published 6 years ago
seiva v1.0.0
Warning
This project is under development. Come back later.
Installation
agua requires node v7.6.0 or higher for ES2015 and async function support
$ npm install agua
Usage
Application structure
├── package.json
├── app.js (optional)
├── agent.js (optional)
├── app
| ├── router.js
│ ├── controller
│ │ └── home.js
| ├── extend (optional)
│ | ├── helper.js (optional)
│ | ├── filter.js (optional)
│ | ├── request.js (optional)
│ | ├── response.js (optional)
│ | ├── context.js (optional)
│ | ├── application.js (optional)
│ | └── agent.js (optional)
│ ├── service (optional)
│ ├── middleware (optional)
│ │ └── response_time.js
├── config
| ├── config.default.js
│ ├── config.prod.js
| ├── config.test.js (optional)
| ├── config.local.js (optional)
│ └── plugin.default.js
app.js
// app.js
const Agua = require('agua').Agua;
const app = new Agua({
basedir: path.resolve(__dirname),
});
app.listen(3000);
app/router.js
// app/router.js
module.exports = (app) => {
// app.get(name, path, 'controller.method');
app.get('homeIndex', '/home', 'home.index');
};
app/controller/home.js
// app/controller/home.js
module.exports = (app) => {
return class HomeController extends app.Controller {
async index() {
this.ctx.body = {
message: 'helloworld',
};
},
};
};
app/middleware/response_time.js
// app/middleware/response_time.js
module.exports = (options, app) => {
return async (ctx, next) => {
let startTime = new Date();
await next();
let endTime = new Date();
ctx.body = {
...ctx.body,
latency: (endTime - startTime).toString(),
};
};
};
config/config.default.js
// config/config.default.js
module.exports = {
middleware: ['response_time'],
'response_time': {
enable: true,
},
};
1.0.0
6 years ago