又跟着老师的视频课程学习了,学完之后,最重要的是练习啊!
1、编程语言的演化
编程的语言里面有很多保留字,这些保留字不能当做变量。但是经常还会预留一些关键字。预留一些关键字的目的是:为了以后的发展的空间做准备。关键字特别的重要。
今天的课程主要会帮助大家做一些思想上的整理,一定要建立一些思想上的认知。Express的架构老师表示巨简单。本节课程把Express的前4课程的内容做一个串讲。package.json 是非常重要的一个东西。Nodejs首先要这个package.json 的文件。所有的项目里面最重要的是readme是一个项目的说明书。
-
我们知道Express可以全局安装在我们的电脑里面。为什么要进行全局?因为它是一个全局的项目,我们可以获取一个Express的指定,生产一个项目。工地里面有一个非常形象的名词可以形容:“脚手架”。我们做任何事情的时候,都要在一个脚手架的基础上来做,这样我们就不需要从零来做。一个脚手架里面有bin的3w的文件,还有view,还有Router,public。主线如下:
最重要的几个关键的因素:中间件,路由,next,res,req,这几个的关系是抽象出来的。
- Express真正处理逻辑的时候,其实就是在操作req,res 等中间件加工后的数据进行的数据。这种的方式,大大的减少了工程师处理数据的难度。req是来拿数据的,res是进行数据的响应的。有render,json,end,send等4个方法进行数据的响应。无论是进行如何的处理,我们的代码充斥着res,req。学习的过程中,一定要抓住重点。
-
学习过程中,老师表达大家可能会focus到一个问题。用sample6 的代码,老师带着大家做一些好玩的东西。关注以下两个路由的处理,关注以下代码执行的流程。
2、路由处理的顺序
所有的请求,都是从上往下依次来进行查找。
路由分开写的目的就是为了分进行管理。有助于问题查找的时候,方便进行问题的查找以及问题。
API(application program Interface): api 程序的接口。一般的情况下,都是用来进行提供数据的。
nodeJS做的一个偏好,比如 Router.api.js nodeJS可以进行兼容。JS相关的代码都是可以使用_的这种的方式,还有很多语言,都是不支持..的方式,这种好的方式,不仅仅在易读性上,还可以在正则反则的方式上进行匹配。所以学习的过程中,可以多问一些像玉飞说的这些的问题,真的是非常好。
老师问了好几遍,问大家在学习的过程中有什么问题?为什么没有next的话,还可以顺序的往下走。这个时候,架构就是非常奇怪的事情。app.use( '/api', api), 是同一个类型的同一个东西时,那么架构内部就自然的进行封装了。对于高频的操作,一个框架的架构,自己会进行整合。
module.export = router 两个Router会不会冲突?JS是一个函数式编程的语言。不管传入什么对象,找的都是具体的函数,每个函数之间不会有任何的冲突。比如上次类比的例子,云飞下面的很多工长的例子,每个工长之间不会有冲突。只要真正干事情的函数不冲突,那么就不会有任何的问题。
3、学习到8-13的sample例子
渲染时机,老师表示很多同学在遇到问题的时候,不知道如何找问题,所以针对这块的问题,给大家一个讲解。
浏览器,Server(Express),当浏览器表示要访问某一个localhost: 3000的地址,浏览器返回一个页面的响应,我们需要注意的是数据的渲染。或者是构建丰富化的HTML的结构是在哪干的?我们构建界面的时候,用了一个EJS的引擎。如果需要自己来通过代码构建HTML,这件事情比较复杂,有了EJS的话,那么这件事情就简单的多了。我们需要理解数据如何渲染成HTML。
- 如何把数据画成一个图?这个不是学习的重点,我们需要知道的是如何进行数据的传递工作。怎么把数据渲染成HTML的结构?有了HTML的结构结构以后,Server就可以把数据进行了返回。EJS有了语法的结构。<% %>。
- 代码的渲染有一部分是客户端来渲染的,有一部分的服务器端进行渲染的,自己需要focus一下。这部分的代码我没有关注过呀。还需要自己重点去看一下VUE的语法。
- 下节课程的开始,主要就是进入到逻辑的处理。就像一个公司的层级,我们愈发的focus到整个公司的业务。我们处理的过程中,总是需要上面的支撑。所以下节课程开始我们就需要进入到数据库的这部分。
4、玉飞的一句话,老师的答复
- 作为一个初学者,老师表示不要着急给出一个东西,急于给一个东西下结论。这个不仅会影响自己对于事情的认知,还容易和别人产生争吵。
- json-server 和 mongdb 云飞做了一个对比,表示有了json-Server还要mongdb干嘛?老师的答复是:这两个本身就不是一个东西,也不怎么具有可比性。可以做一个打卡的小程序。小数据量的时候,json-Server可以进行数据的处理,但是数据量大的时候,完全不可以。具体选用什么,要根据项目的实际情况来定。
5、下一个阶段的作业以及答疑
14-20 课程
老师表示会focus到大家学习的状态,随时会进行学习问题的记录。然后给大家进行的答疑。
关于视频的存放,应该存储在静态的云存储的空间里面。说起来的时候非常的简单,但是做起来还是要费一些脑筋。视频的存储被打成了流。
新生大学以前的视频是没有办法快进的。因为他是一个固定的。现在快进的视频,是因为存储的是一个流,所以是一点点的播放的。
数据的交换,为什么要使用json?因为json使用起来比较方便。老师表示自己在10年参加了一个创业的项目。类似于微信的产品。比如IM的流量,可以发多少条信息。比如实现这样的机制就没有办法使用json。比如像发送成功与否,发送单独的数字,还是发送JSON体,哪个耗费流量。为了给用户省流量,我们完全自定义协议,说白了,就是交换数据的结构。掌握协议,就掌握了标准。就相当于有了话语权。随着技术的发展,流量不是主要focus的点,现在json就成为了主流的数据交换的方式。
JS,RB,PHP,JAVA等都在用JSON,但是谁都没有JS用的那么好,JS天生就是对于JSON的支持特别的友好,就像处理对象一样的流畅与自然。
有童鞋表示卡在 15 节课程的数据库的安装上面,老师说表示大家来进行答疑。
有没有开源的自动识别的项目?老师表示GitHub上面有的,可以识别现在路上的车的车牌号。这个作者的项目是为了帮助警察解决美国盗车的问题。套牌车也可以进行数据的分析。这个项目特别的好玩。所以多逛GitHub比逛淘宝有意思。
大家问老师有没有出书的打算?老师表示现在的出书与之前的已经完全不一样了。现如今出书的这件事情变得比较的简单,可以将经验进行累计,然后整理之后就可以出书了。慢慢总结,慢慢累计,慢慢的到时候也可能水到渠成。
还有什么问题?设计的课程要不要报一下。老师表示自己离开新大也蛮难过的。做新大的时候还是有一些理想,还是非常想做教育的一些的东西。非常的不认可现有的一些培训的行业。老师表示现在的很多作者的项目,都是可以开源很多项目,然后被很多公司拿到,做到市值很多钱的上市公司。但是作者本身并没有想要得到很多东西,这件事情还是蛮理想的。老师表示自己还需要再沉淀一下。真正的做教育这块的东西,并表示教育还是可以开源的。中国几千年的发展,学校,医院,教堂没有变动。
比如极客学院现在都从线上转到了线下。迫于赚钱的压力,但是老师表示除了赚钱,本身自己还是想要做一些特别酷劲十足的东西。这个还是比较有意义的。
部署服务器觉得有困难的时候,千万不要着急,千万不要被已经部署到了服务器的同学们影响,以及牵引,勾引,导致自己笔记捉急。所有公司的主页,基本都是服务器来进行渲染的。老师表示自己尽快保持克制,不要乱点,以免被大家看到不能看的东西,大家实在是太厉害了(哈哈,偷笑中。)
反正你知道,服务器来渲染,就是为了能被爬虫到,被抓到。然后课程结束,音乐响起。