项目源自慕课网Scott老师,https://www.imooc.com/learn/75
最近在学习node.js,我花了一天时间实现了慕课网Scott老师的项目,但看课程评论有很多同学吐槽使用的插件太多,或是mongoose不大会使用等等,于是写了这篇心得,希望可以帮助大家
1、版本和安装依赖
注意express4.x的变化,很多之前内置的中间件需要单独引入,具体请看官网:http://www.expressjs.com.cn/guide/migrating-4.html
如body-parser等
2、视图
项目共有4个页面
视图使用ejs模板引擎渲染(原谅我实在不喜欢jade的缩进写法--!),所以需要引入ejs包,前面依赖项已经说了,而且注意目录中layout.ejs作为母板文件,需要引入partials(也是版本原因,当前的express版本貌似不支持ejs公用layout了)
这时候我们就可以像使用视频中layout.jade一样使用ejs语法来创建视图的公共部分了
3、静态资源
说一下静态资源的配置吧,这里引入node内置模块path,使用‘__dirname+’的方式保证资源路径的准确性,同样由于express4.x版本原因,var resource =require('serve-static');引入设置静态资源的中间件
此时,我们看layout.ejs文件
注意看,静态资源位置已经指定为bower安装包‘bower_components’,我在项目中引入静态资源文件时,路径默认为‘bower_components’下,这里路径前面的'/'表示定位到项目根目录下,后面我们会看到,如果存在二级路由,比如admin/movie,若不要前面的‘/’,那么会从根目录/movie/bower_components下寻找资源,自然是无法找到的。
(../上一级目录,./当前目录,/根目录)
4、ejs语法
这里简单说一下ejs的语法吧:</