介绍
MEAN 是一个由以下组件组成的软件应用堆栈:
MongoDB ,一个支持服务器侧 JavaScript 执行的 NoSQL 数据库
- ExpressJS ,一个 Node.js Web 应用框架
- AngularJS ,一个适合开发动态,单页应用程序
- NodeJS 的 Web 应用框架,适合构建可扩展的网络应用程序
该术语最初是由Valery Karpov发明的,而这个术语是从每个组件的第一个字母中衍生出来的。Valery在 这个博客帖子中定义了MEAN,其中他给出了一些选择开发JavaScript应用程序的动机:
通过全程使用JavaScript编码,我们能够实现软件本身和开发人员的生产率的性能提高。使用MongoDB,我们可以以JSON类型的格式存储我们的文档,在我们的ExpressJS和NodeJS基于服务器上写JSON查询,并无缝地将JSON文档传输到我们的AngularJS前端。当存储在您的数据库中的对象与客户端JavaScript所看到的对象基本相同时,调试和数据库管理变得更容易。
MEAN 堆栈目前有两种并行实现: MEAN.io 和 MEAN.JS . 每个都有略有不同的安装方法。 MEAN.JS 是一个纯粹的社区驱动的实现,而 MEAN.io 是由一家名为 Linnovate 的公司赞助的。
在本指南中,我们将使用 MEAN.JS 在 CentOS 7 服务器上安装 MEAN 堆栈,使用此方法首先安装 MongoDB,然后安装 NodeJS,然后从 GitHub 克隆 MEAN.JS 文件。
前提条件
首先,你需要有以下:
- CentOS 7 服务器至少具有 4 GB 的 RAM. MEAN 堆栈的一些组件,例如
npm
,需要大量的内存。 - 使用 本 CentOS 7 初始服务器设置指南配置的 sudo 非 root 用户。
步骤1 - 安装依赖性
因为我们将从源编译应用程序,克隆Git存储库,并安装Ruby宝石,我们需要先安装一些依赖性。
1sudo yum install gcc-c++ make git fontconfig bzip2 libpng-devel ruby ruby-devel
我们将安装的一些Node.js模块将需要Sass,一个CSS扩展语言。
1sudo gem install sass
现在,依赖已安装,我们可以安装堆栈的第一个组件:MongoDB。
第2步:安装MongoDB
MongoDB不在官方的CentOS存储库中,所以要安装它,你需要启用官方的MongoDB存储库,这样你就可以访问最新的软件包,并从那里安装它。
对于本教程,我们将安装社区版,可免费下载。还有企业版,但这需要许可证,所以我们不会在这里处理。
在发布时,MongoDB 3.2 是可下载和安装的最新稳定版本. 要启用存储库,请在 CentOS 存储库目录 /etc/yum.repos.d
中创建一个文件。
创建和打开/etc/yum.repos.d/mongodb.org-3.2.repo
使用vi
或您最喜欢的文本编辑器。
1sudo vi /etc/yum.repos.d/mongodb.org-3.2.repo
要将包管理器指向官方 MongoDB 存储库并启用它,请将下列内容复制并粘贴到文件中。设置 enabled=1
启用存储库,设置 gpgcheck=1
将启用 GNU Privacy Guard (GPG) 签名检查从存储库安装的所有包。
1[label /etc/yum.repos.d/mongodb.org-3.2.repo]
2[mongodb-org-3.2]
3name=MongoDB Repository
4baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
5gpgcheck=1
6enabled=1
7gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
保存并关闭文件,然后安装mongodb-org
包来安装MongoDB及其相关工具. 当被要求导入GPG密钥时,键入y
为是
:
1sudo yum install mongodb-org
安装完成后,启动 MongoDB 戴蒙。
1sudo systemctl start mongod
mongod
,MongoDB大象,现在应该在运行,你可以使用以下命令来验证:
1sudo systemctl status mongod
如果它正在运行,输出应该看起来如下:
1[secondary_label Output]
2mongod.service - SYSV: Mongo is a scalable, document-oriented database.
3 Loaded: loaded (/etc/rc.d/init.d/mongod)
4 Active: active (running) since Tue 2016-09-06 12:42:16 UTC; 9s ago
5 Docs: man:systemd-sysv-generator(8)
6 Process: 9374 ExecStart=/etc/rc.d/init.d/mongod start (code=exited, status=0/SUCCESS)
7 CGroup: /system.slice/mongod.service
8 └─9385 /usr/bin/mongod -f /etc/mongod.conf
9
10Sep 06 12:42:16 centos-mean-js systemd[1]: Starting SYSV: Mongo is a scalable, document-oriented database....
11Sep 06 12:42:16 centos-mean-js runuser[9381]: pam_unix(runuser:session): session opened for user mongod by (uid=0)
12Sep 06 12:42:16 centos-mean-js mongod[9374]: Starting mongod: [ OK ]
13Sep 06 12:42:16 centos-mean-js systemd[1]: Started SYSV: Mongo is a scalable, document-oriented database..
我们需要安装的堆栈的下一个部分是Node.js。
步骤 3 – 安装 Node.js
一个简单的方法来安装 Node.js 是使用从 NodeSource Node.js 存储库的二进制。 首先,添加稳定分支的存储库。 您可以使用下面的命令阅读脚本的内容,然后访问浏览器中的 URL。
1curl -sL https://rpm.nodesource.com/setup_4.x | sudo -E bash -
接下来,安装 Node.js 和npm
,为 Node.js 的包管理器。
1sudo yum install -y nodejs
检查 Node.js 和 'npm' 是否已安装。
1npm version
产量应该是:
1[secondary_label Output]
2{ npm: '2.15.9',
3 ares: '1.10.1-DEV',
4 http_parser: '2.7.0',
5 icu: '56.1',
6 modules: '46',
7 node: '4.5.0',
8 openssl: '1.0.2h',
9 uv: '1.9.1',
10 v8: '4.5.103.37',
11 zlib: '1.2.8' }
现在安装了npm
,我们可以安装 MEAN 堆栈的其他组件。
步骤 4 – 安装 Bower 和 Gulp
我们将在这个步骤中安装的组件是Bower,一个用于管理前端应用程序的包管理器,以及Gulp,用于自动化常见任务。
Bower 和 Gulp 都需要在全球范围内安装,我们通过将 g 选项转换为npm
来实现这一目标。
首先安装Bower:
1sudo npm install -g bower
然后安装Gulp:
1sudo npm install -g gulp
现在,我们终于安装了所有前提包,我们可以继续安装实际的MEAN.JS锅炉,用于创建应用程序。
步骤5 – 安装 MEAN 锅炉板
首先,我们将克隆官方MEAN.JS GitHub 存储库。
1git clone https://github.com/meanjs/mean.git meanjs
这将MEAN.JS锅板克隆到您的主目录中的名为meanjs
的目录中。 要安装所有项目参考的包,您需要在该目录中,所以进入它。
1cd ~/meanjs
然后将所需的包安装为非根用户。
1npm install
安装将需要几分钟。完成后,您将拥有开发MEAN应用程序所需的一切。在最后一步中,我们将测试堆栈,以确保它工作。
步骤 6 – 运行您的样本 MEAN 应用
让我们运行样本应用程序,以确保系统正常工作。一种方法是使用npm start
,另一种方法是使用gulp
。
1npm start
<$>[注] 注 :这些命令中的任何一个的初始运行可能失败,输出类似于以下:
1[secondary_label Error output]
2[12:56:49] 'lint' errored after 702 ms
3[12:56:49] Error in plugin 'run-sequence'
4Message:
5 An error occured in task 'sass'.
如果您收到此错误,解决方案很简单,包括删除node_modules
目录,清除缓存,然后重新安装包。
1rm -rf node_modules
2npm cache clean
3npm install
然后用npm start
或gulp
重新启动样本应用程序,就像以前一样。
您现在可以访问您的 MEAN 应用程序,在您最喜欢的浏览器中访问 http://your_server_ip:3000
. 这应该显示具有 MEAN.JS 标志的页面,包括文本 Congrats! 您已经配置并运行了样本应用程序。 这意味着您在您的服务器上有完全功能的 MEAN 堆栈。
结论
现在你已经拥有必要的组件和 MEAN.JS 锅炉板,你可以开始构建、测试和部署自己的应用程序。