周大胖子 发表于 2018-4-27 15:02:05

Express使用心得

在学习Express框架之前,只知道Express是基于nodejs的web开发框架,相关的还有Koa框架等其他一些基于nodejs的框架。通过这几天的学习,对它有了一定的了解。下面是我的一些感想:
第一天学习的时候,先进入nodejs官网,下载一个nodejs,然后按照Express的官网,完整的过了一遍,但是对Express是做什么的,怎么用,还存在疑问,通过威哥的引导和浏览网上相关的文章,终于对它有了一些了解。下面是一个Express自动生成的架构目录,从目录大致可以看出:Express核心概念在于路由,中间件以及模板引擎,只要摸清楚了他们的原理,以及是做什么的,我觉得应该就差不多了。express-demo tree ├── app.js # 应用的主入口├── bin# 启动脚本├── node_modules # 依赖的模块├── package.json # node模块的配置文件├── public # 静态资源,如css、js,img等存放的目录├── routes # 路由规则存放的目录└── views # 模板文件存放的目录(模板引擎)中间件:可以毫不夸张的说,在express应用中,一切皆中间件。各种应用逻辑,如cookie解析、会话处理、日志记录、权限校验等,都是通过中间件来完成的。路由:负责寻址的。比如用户发送了个http请求,该定位到哪个资源,就是路由说了算。模板引擎:负责视图动态渲染。1.路由,express主要支持四种类型的路由,字符串类型,字符串模式类型,正则表达式类型,参数类型,利于:https://pic4.zhimg.com/80/v2-4e0fcf619b8cc6b9e42fdf541241c20a_hd.jpg
路由也可拆分,由于当路由规则复杂的时候,拆分就显得比较有好处了。路由拆分前:https://pic4.zhimg.com/80/v2-c71d54069e7dd0cf809026dc4f80d50c_hd.jpg
路由拆分后:https://pic2.zhimg.com/80/v2-a623a2ff06804170fee8cfd39a798a10_hd.jpg
可以看出通过express.Router()进行了路由拆分,新增,修改路由都变得极为便利。2.中间件,分为两大类,应用级中间件和路由级中间件,两者的区别不容易说清楚,因为从本质来讲,两类中间件是完全等同的,只是使用场景不同。应用级中间件:app.use()、app.METHODS()接口中使用的中间件。路由级中间件:router.use()、router.METHODS()接口中使用的中间件。https://pic3.zhimg.com/80/v2-48442ce744697eb87a427e7363d17379_hd.jpg
3.模板引擎,这个概览,其实在学习express之前,完全不知道是什么。模板引擎其实蛮多的,例如下面一些:·jade·ejs·dust.js·dot·mustache·handlerbar·nunjunks    Express默认是用的jade,除了jade,我还看了下ejs,对其他的一些模板并不是很清楚,个人觉得jade还是较好的,代码量较少,没有闭合标签,而且也比较直观,通过类似sass的tab行缩进来区分。而ejs是类似html的写法,只是传值用了《%,<%_ …等等一些标签。    在app.js中添加如下代码进行配置:https://pic3.zhimg.com/80/v2-87fa8f1dc4fc4091b491004999fcfb82_hd.jpg
views:模板文件存放的位置,默认是在项目根目录下。Viewengine:使用什么模板引擎,默认jade.    其实在项目中,一般一个页面都会拆分成n个部分,所以,一个页面并不是一个模板就搞定的,他可能需要多个,所以,就涉及到模板组合(include),模板继承(extends)以及模板扩展(block),后面两个一般都一起用。    在学习express中我遇到了,一些问题:1.启动express后,如何停掉?通过ctrl+c 组合件停掉。2.当我改了js的时候,按F5页面没起作用?原来改js后,必须重启,才起作用,而改css,模板文件的时候,直接手动刷新浏览器就起作用。3.再试着用jade写页面的时候,一直报错?原来jade的行缩进展示,只能用tab键,而不能用空格代替,不然会一直报错。
页: [1]
查看完整版本: Express使用心得