精华 需要大家帮忙一起完成《一起学koa》
发布于 1 年前 作者 i5ting 28178 次浏览 最后一次编辑是 9 个月前 来自 分享

一起学koa

开源是最好的学习平台,大家一定要多多参与,我们也希望能够和大家一起,完成一本让大家更容易学习koa的书

gitbook地址 http://17koa.com/koa-generator-examples/

宗旨

大家一起学习koa

  • 暂时不会的可以提问,并学会
  • 会的可以帮助他人,查缺补漏

参与流程

通过提问、实现,pr的方式

  • 提issue
  • 根据某个issue,fork并实现
  • 提交pr
  • 合并pr并发布

https://github.com/base-n/koa-generator-examples

技术顾问

@fundon @alsotang @老雷

版本说明

  • README.md放说明和实现规范
    • 1.x.md放koa1.x版本的用法
    • 2.x.md放koa2.x版本的用法

实现功能点

欢迎提交issue和pr

https://github.com/base-n/koa-generator-examples

项目组微信群,如无贡献会被踢出 Screen Shot 2015-12-10 at 5.57.14 PM.png

如果加不进去群,可以先加我,或者github上留言

Screen Shot 2015-12-10 at 5.57.28 PM.png

97 回复

天天学习,共同进步~~·

大家也可以在这个帖子里提问关于koa的问题

koa 的资料之前貌似还是比较零散的。

不过这是基于 koa 1 还是 2 呢。。。。。?

@alsotang 1和2都有,是2个文件,反正一样的功能实现2个版本也还好,猜猜坑嘛

很喜欢koa,顶一个啊!

顶,赞!

@Pana,Pana资料应该不少

好活动,支持个!

问下具体怎么参与。根据issues的要求完成作业吗?最后怎么合并

来自酷炫的 CNodeMD

@cfddream 加一个最佳实践部分,求蔡神给补一篇关于trekjs和koa最佳实践的文章啊

@TakWolf 先fork,然后修改,完成了之后创建pr,发给我,我来合并

如果大家想参与这个项目,也可以告诉我github名,我吧他加到org里

@i5ting 专注1就好了吧,2的话,es7的特性没那么快的。同时走两个版本容易分散精力

我也想参与,但是技术不行咋办呀

来自炫酷的 CNodeMD

@monolyvip 可以提问题啊,哪里不会提哪里,然后看大家是如何解决的

koa 真的那么好吗? 可以和express 的系统对接问题,不大吧?

微信。。。

@i5ting 好哒

来自炫酷的 CNodeMD

支持,虽然刚刚学习nodejs,希望能参与进去!!!

看了es7 async await ,再看es6 的 * yield 感觉回不来了。

@coolicer async其实也是generator,哈哈

koa2想推async,不过nodejs5.2还没支持,so。。。

终于能参与开源项目啦,支持桑大@i5ting ~~ nodejs学的时间不长,对ES6/7也不太熟悉,希望能由此开始学习。 已 fork …

@i5ting 不清楚,反正现在的generator和async都是转promise的吧

占个位先

桑老大,带我一个哇 @i5ting

来自酷炫的 CNodeMD

@i5ting 确实,那天我试了一下不支持

来自炫酷的 CNodeMD

最近在研究koa的oauth2,不知道到时候能发个issue不

来自炫酷的 CNodeMD

@monolyvip 可以提一个feature呀

@i5ting 原来是这样

来自炫酷的 CNodeMD

@monolyvip 本书中还有FAQ一章,专门解答大家问题的

有意参加, 不过手上有个小爬虫项目在维护,时间不是很多,主要是想加进来学习下, 如果水平足够的话也愿意贡献些代码。 如果不嫌弃的话我就进来学习了

@a316523235 开源精神是open,想参与就来吧~谁也不是一出生就是大牛

增加了nodejs4.x支持的es6的9大特性,有木有想来一起写的啊?

https://github.com/base-n/koa-generator-examples/issues/17

干的漂亮希望koa的人越来越多

继续跟着大家学习。。。

赞桑大 自豪地采用 CNodeJS ionic

到底koa2在哪??

@mzTeamMeatMan ?koa2目前还未发布,暂以1为主,另外可以参考koa-generator里的koa2生成器

@i5ting 1的已经投入生产很久了,就好奇2的到底怎么样

@mzTeamMeatMan 用koa-generator里的koa2命令生成一个,看看就知道了

马山就100star了 哈哈

支持,想加入。 自豪地采用 CNodeJS ionic

@zhoutk 欢迎啊

我这两天被koa2虐得外焦里嫩的,出现很多不知名里的bug

@yreenchan 提出来,我们会解决

koa是个框架吧?

我用babel-node 运行了下面官方的例子,不能正常运行,是什么问题,报了一堆看不懂的错误

const Koa = require('koa');
const app = new Koa();

// logger

app.use(async (ctx, next) => {
  const start = new Date;
  await next();
  const ms = new Date - start;
  console.log(`${ctx.method} ${ctx.url} - ${ms}`);
});

// response

app.use(ctx => {
  ctx.body = 'Hello World';
});

app.listen(3000);

@yreenchan 把调用栈提交到issue里吧

koa2怎么使用koa-router?

@i5ting 最近在学习 koa 可以 把 我拉进那个群么 谢谢

感觉电子书还没写完吧!以前看到个国外的学习koa https://github.com/koajs/kick-off-koa

@sumaolin 还在写呢,年底比较忙

@i5ting 用koa-generator生成项目 的时候有个点比较奇怪,就是这里 untitled1.png

非常好的想法,希望能加入!有好段时间没有玩Node了,重新开始学习中。

求加入方式

koa为啥没有一条命令生成一个项目呢?就跟express一样,直接初始化一个项目,然后安装好依赖,直接启动就可以在浏览器里访问的那种,我觉得这样入门会快的多,愚见!

@i5ting 微信群能加我一下吗

数据库可以考虑加入postgres吗,这样会更完善点

@unclay 恩,@fundon 大神会帮忙写的,他更厉害一些

gitbook的地址打不开了

@i5ting gitbook 地址 404了~~

地址打不开了

2.0正式了 不知道加入2.0的内容没

@yuu2lee4 之前也有的,不过以1为主,马上补上

我一直比较好奇的是怎么做到router能够智能识别去调用不同的控制器方法处理后续任务而不是单独一个一个去指定匹配url

@i5ting @SinalVee
我觉得我没有表达清楚,举个例子吧,比如说我的url都是http://www.domain.com/controller/function?param=val[&…]这种形式,我想让router去做一件事,就是分解每一个请求找到controller,然后动态导入controller/controllername.js这个文件去执行function的方法,这样子我不用自己去预定义匹配链接也不需要用regexp,不知道我有表达清我的意思吗?

@iepngs 只有约定和配置可以做到,比如 https://github.com/moajs/moa2 是基于约定的

@iepngs 大概想了一下,这样应该可行,不过就得自己在action中判断get, put等等了

router.all('/:controller/:action', async (ctx) => {
	const controller = ctx.params.controller;
	const action = ctx.params.controller;
	const controllerFile = CONTROLLER_FILES[controller];
	const controllerObj = require('controllers-dir/' + controllerFile);

	if (!!controllerObj && !!controllerObj[action]) { // 可以更详细的判断是否为对象和是否为函数
		await controllerObj[action](ctx);
	}
});

@SinalVee 那要路由干嘛?直接中间件里多爽啊。。。

没意义的,放弃吧,此路不通

@i5ting 哈哈,只是给楼上提供一种思路,还是用路由比较清晰

好的, 感谢两位指导

@i5ting 期待加入学习。。。 用了Express很久了 ,也是时候学习新框架了。

赞~(≧▽≦)/~

支持,学学新东西~

回到顶部