定义controller,大家喜欢哪种写法?
发布于 9 年前 作者 i5ting 6428 次预览 最后一次回复是 9 年前 来自 问答
定义controller,大家喜欢哪种写法?
处理get请求,就直接写一个get方法即可
class MyController extends BaseController {
get () {
var a = this.query.a
return `hello world ${a}`
}
}
模拟servlet,在get方法里传参数,req和res
class MyController extends BaseController {
get (req, res) {
var a = req.query.a
return res.body = `hello world ${a}`
}
}
大家喜欢哪种写法?
26 回复
现在一见this就哆嗦
@yakczh koa 1.x时代吓怕了,哈哈
class MyController { @GET @URL(’/posts’) async get (ctx) { ctx.success({posts:await ctx.model(‘post’).find()}) } }
@AnzerWall ctx作为参数有点怪,不如req和res直接,无论是express,还是servlet都是这样传值的
狼叔我这个写法如何?
@stonephp 取巧,哈哈,用着肯定比较简单
直接exports函数的是什么水平~
koahubjs控制器的写法如何?
From KoaHub.js
喜欢传参数的方式,虽然在其他语言的好多框架中不传参数直接用也很方便,不过在 JavaScript 中 this 本来就是一个关键词,类似于 Koa 这样将一些数据直接放在 this 上,用起来有点不清不楚的感觉。
@hezhongfeng 没有好坏,Node.js可以面向过程,面向对象,函数式,所以用好都是神器
@einsqing 太常见了,thinkjs|php,sails,lavavel都是这样做的,super还不如this呢,哈哈
@i5ting this可以替代super,但是推荐super调用。
From KoaHub.js
偏向第二种吧,对新手友好一点点~更express;第一种更koa——真是servlet风格…结合ejs(jsp)- -
@i5ting 只有一个问题,无法控制请求类型。所以准备新增自定义路由
From KoaHub.js
@DevinXian 哈哈,感谢回复
@einsqing 那条路上大家很难玩出新花样吧
@i5ting 这里传递ctx是传递的koa的上下文,我们这边是基于koa2包装的一个框架,为了便于测试,不要求类继承于任何一个框架相关的类,所以也就不包装this提供函数支持,直接写在了ctx中。
@i5ting 开发
From KoaHub.js
@i5ting 现在node开发效率太低。还是应该以生产力为主
From KoaHub.js
@einsqing 我一年开发6个产品你说效率如何?
@i5ting 非常简单,所以我招人要求可以很低。
@stonephp 效率太低了,现在nodejs开发web效率,跟php比还是差一大截
From KoaHub.js
@einsqing 推荐你再用go试试
我觉得是哪个熟悉哪个快,我拿node你拿php不见得比我快,我自己node对我自己的php,肯定是比php快,哈哈
为啥要模拟 servlet 呢,servlet 就是因为代入 req res 后和 servlet 环境耦合太高,所以 struts2 和 springMVC 才让 controller 写成 POJO 。前者明显更好。
@i5ting 狼叔跟我的体会一致,我现在node.js开发不我几年前玩khkphp开发效率高多了
对比express写一个简单的转换