最近学习使用了 mean 架构的一个框架 mean.io,在这里记录下学到的东西和遇到的问题,以备后用。
mean.io 的安装
在安装 mean.io 之前必须要安装:
mongodb
git
gulp / grunt
之后在 npm 中输入
1
npm install -g mean-cil
安装完成后就使用
1
mean init
来创建 mean.io 应用,会被要求输入应用名,之后自动从 mean.io 的 github 上复制文件
复制完成出现这个
这里默认选择 no,但是创建一个管理员用户会很方便,所以选择 yes 创建管理员用户
在此之前要先打开 mongodb,否则会报错
完成之后进入目录使用 npm install 安装依赖。值得吐槽的是,要装的依赖真是多……
全部安装完成后第一个 mean.io 应用就可以使用了,使用
1
gulp
启动应用,在浏览器中打开 localhost:3000 即可看到搭建的默认应用,并且由于使用了 gulp,在相关文件发生改变时页面会自动重载刷新
遇到的问题
mean init 时提示 “Prerequisite not installed: git”
官方文档说应当把 git 的可执行文件路径添加进去,然而并不明白……
在 StackOverflow 上找到了不错的解决办法,就是把 git 重装一遍,在下图界面选择” Use Git from the Windows Command Prompt” 即可
Tips
每次启动应用之前需要先启动 mongodb,否则会报错
mean.io 的文件结构
主要关注应用目录下的 packages 文件夹
通常会有 core 和 custom 两个子文件夹
core 文件夹中包含的是首页、文章编辑、用户登录注册和管理员界面等
custom 可以理解为分页面,就像一个新闻页面会有一个首页和每个版块的新闻分页面一样
custom 里面装的就是这些分页面,并且这些分页面会自动添加到首页的导航栏中
core 的文件结构
admin 是管理员界面
article 是文章编辑、发布、展示的界面
system 是首页
users 是登录、注册、忘记密码等界面
system 的结构如下
其中 public 是客户端
assets 用于存放样式表和图片
cotroller 是 angular 的控制器,如模块定义、事件监听等
routes 是 angular 路由
views 是 html 视图层
server 是服务器端
controller 是 node 控制器,如模板渲染等
routes 是 node 路由
views 使用的模板引擎不像是 ejs,查了一下是 Django?它是将页面 head、foot 和主体内容组装起来的关键,其中 includes 里面存放了页面的 head(仅仅就是 html 结构中 head 的部分)和 foot layouts 中的 default.html 引用 head、foot 的相关文件将其组装起来,但是主体内容部分还没有渲染。
在 views 目录下还有一个 index.html,引用了 default.html,并且添加了对主体部分的渲染,这样出来的页面就是一个完整的页面了。
custom 的文件结构
custom 下默认已经有一个子页面 i18n 和另外两个文件夹。按理说这三个都应该是属于子页面被添加到导航栏,但是实际上只有 i18n 被添加了,另外两个并没有。这两个文件夹还不能被移除,否则会报错。i18n 这个是样例,新创建的子页面都会和它一样,这个文件夹可以随意移除或是更改名称。
mean.io 的使用
创建自己的子页面应用 (package)
官方文档中称这样的子页面应用为 package,创建自己的 package 可以通过
1
mean package
创建,这样会自动按照 i18n 的结构在 custom 文件夹底下新建一个以 packageName 为命名的文件夹,重载之后就可以在导航栏看到 package 名被添加上去,当然内容和 i18n 是一样的,要使它符合要求就要修改相关文件。
先写到这里吧改天接上后面的内容继续。