将Koa.js与ES6一起使用
Use Koa.js with ES6
我正在用Express编写一个REST API已有一段时间了。我一直在读Koa.js,它听起来很有趣,但我似乎不知道如何用Koa.js编写正确的ES6功能。我正在尝试制作一个结构化的应用程序,这就是我现在所拥有的:
注意:我使用的是koa路由包
let koa = require('koa');
let route = require('koa-route');
let app = koa();
class Routes {
example() {
return function* () {
this.body = 'hello world';
}
}
}
class Server {
constructor(port) {
this.port = port;
}
addGetRequest(url, func) {
app.use(route.get('/', func());
}
listen() {
app.listen(this.port);
}
}
const port = 8008;
let routes = new Routes();
let server = new Server(port);
server.addGetRequest('/', routes.example);
server.listen();
它很管用,但看起来和感觉都很笨重。有更好的方法吗?
仅仅因为ES6有类,并不意味着当它们可能不是适合作业的工具时,绝对必须使用它们。:)
这是我通常如何做的一个例子。请不要说这是的方式,而不是的方式。
// api/exampleApi.js
const controller = {
getExample: (ctx) => {
ctx.body = { message: 'Hello world' };
}
}
export default function (router) {
router.get('/example', controller.getExample);
}
// server.js
import Koa from 'koa';
import KoaRouter from 'koa-router';
import exampleApi from 'api/exampleApi';
const app = new Koa();
const router = new KoaRouter();
exampleApi(router);
app.use(router.routes());
app.listen(process.env.PORT || 3000);
请注意:此示例基于Koa 2和Koa路由器7。
相关文章:
- ES6构造函数返回基类的实例
- 如何在下面的ES6循环中获得前面的文本
- 转义符不能与innerHTML一起使用
- es6 相当于下划线查找位置
- 高亮显示与数组字符串一起使用时文本插件中断
- 如何在Javascript/ES6中的Aurelia浏览器应用程序中使用AWS S3
- setTimeout可以与闭包内的函数一起使用吗
- 将依赖外部库的UMD模块与browserfy捆绑在一起
- Highcharts colorsByPoint与系列中的线性渐变一起使用时不起作用
- 如何将js库与typescript一起使用
- ES6生成器:.next()的输入值
- 将Koa.js与ES6一起使用
- 我可以将JSNice与ES6一起使用吗
- 将ES6符号与typescript一起使用
- 我可以将 ES6 的箭头函数语法与生成器一起使用吗?(箭头符号)
- 如何将 Typescript 与原生 ES6 Promise 一起使用
- 将 redux-saga 与 ES6 生成器与 ES2017 async/await 一起使用 redux-thunk
- 将angular服务与es6模块一起使用有意义吗
- 如何将 d3 的每个方法与 ES6 箭头表示法一起使用
- 是否可以将Harmony(ES6)与JSXTransformer.js一起使用