####1. 限制必须登录后才能上传; 两处代码更改。 第一处在客户端部分,改变resumable的fileAdded触发事件代码
#insert fallowing code under sample.coffee line 84
if !Meteor.userId()
alert('please login first!');
return false;
第二处在服务端部分,改变myData的allow函数
#insert fallowing code under sample.coffee line 431
if file.metadata?._auth?.owner and userId isnt file.metadata._auth.owner
return false
####2.图片生成可在上传时指定生成大小(此部分未完成); 首先是增加一个form填写gm要处理的图片height和width,此处将两个input简化成一个了。填写的时候空格分开
<!--insert fallowing code under sample.html line 22->
<form class="resolution" >
<input type="text" name="name" value="">
</form>
此处两个宽和长的值是需要存到数据库中的,也就是在上传文件是触发的fileAdded事件中,insert操作修改为
#begin in sample.coffee line 90
{
_id: file.uniqueIdentifier
filename: file.fileName
contentType: file.file.type
#height and width
height:height
width:width
}
可惜我还没学会怎么把这个值从客户端弄过来。 这两个值需要在JobCollection处理的时候用到。 从518开始出的worker函数就是实际调用gm处理图片的过程,可以看到此处的resize值是写死的。只要把数据库中的值传给这个函数即可(此处还没学会)
####对自己改造的代码、样例代码、meteor框架进行评价
其实我不太习惯coffee,就像看惯了简体突然切换到简体一样。我认为meteor让前后端无缝耦合在一起了。这种耦合我个人觉得有好处也有坏处,好处是工程师可以打破传统的开发模式前后通吃。还是蛮爽的。坏处我感觉就是如果不是垂直开发,而是分层开发,有可能前后端不是很好统一,方法有可能在server和client端飞来飞去啊。通过一下午的学习,我认为metetor最强的点就是功能模块化很厉害,一个模块安装之后既有这个模块的前端代码,也能有后段代码,这种很好很强大,把一些常用的功能全部抽离出来用于以后复用,能够节约很多时间。不过这种强大是否会以牺牲调试作为代价我还不太清楚,在我的经历中,一般来说集大成的这种框架或者包或多或少有调试不方便的诟病。自动的watch and reload很赞,不仅能在代码改变的时候热重启,数据改变了,不同端之间也可以相互同步。 关于meteor-file-job-sample-app这个demo,看的只能说暂时一知半解,但是感觉还是写的挺好的,router,allow,resumable的时间以及JobCollection都很清晰。不算最“精妙”的代码吧,但是很“工整”,看起来不累。 我自己的代码的话,没什么好评价的,其实改的不多。
暂时就是这么多了 : )
2015-06-14-17-53 GMT+8