第1章 MEAN简介

第1章 MEAN 简介

MEAN是一个强大的JavaScript全栈解决方案,它由四大组件组成:数据库MongoDB、Web服务器框架Express、Web客户端框架AngularJS,以及服务器平台Node.js。这些组件由不同的团队开发,由开发人员和倡导者组成的社区推动各个模块的开发,并为其创建相关文档。MEAN的主要优势在于其以JavaScript为主要的编程语言。但是,将这些组件结合起来会导致扩展和架构问题,这会极大影响开发过程。

本书将介绍搭建MEAN应用的最佳实践以及搭建过程中存在的一些已知问题。在真正开始MEAN开发前,首先需要配置环境。本章仅涉及一点编程概述,主要介绍如何正确搭建MEAN应用基本环境。学完本章,你将知晓如何在常见的操作系统上安装和配置MongoDB及Node.js,以及如何使用Node.js的包管理器。本章主要包含如下内容:

  • MEAN的架构介绍;
  • 在Windows、Linux及Mac OS X上安装和运行MongoDB;
  • 在Windows、Linux及Mac OS X上安装和运行Node.js;
  • Node.js包管理器(NPM)介绍,以及如何使用它来安装Node模块。

1.1 三层Web应用开发

大多数Web应用都采用了三层架构,包括数据层、逻辑层和展现层。Web应用的应用结构通常分为数据库、服务器和客户端,而在现代Web开发中,它还可以分为数据库、服务器逻辑、客户端逻辑和客户端UI。

MVC架构是实现三层架构的一种比较流行的范式。在MVC范式中,逻辑、数据与显示分别被转化为三种对象,每个对象都有其独特的功能。视图(View)控制显示部分,处理用户交互。控制器(Controller)响应系统和用户事件,支配模型和视图作出相应的变化。模型(Model)负责数据操作,根据控制器的指令对数据请求和状态修改作出响应。下图简单地描述了MVC。

图像说明文字

常规MVC架构的通信

在过去25年的Web开发中,很多创建三层Web应用的技术流行起来,在这些已经普遍存在的技术中,你可能听说过LAMP、.NET,以及其他很多框架或工具。但这些技术最大的问题是每层都有各自的知识基础要求,而这些要求往往又超出了单个开发人员的能力所及,这一点会迫使团队规模超出实际所需,效率也会相应降低,并且会带来各种未知的风险。

1.2 JavaScript的演进

JavaScript是一个专为Web创造的解释型编程语言。在最早被Netscape Navigator浏览器支持之后,JavaScript成为浏览器执行客户端逻辑的编程语言。在21世纪的第一个十年中期,网站到Web应用的转换,以及高速浏览器的发布,促使使用JavaScript编写更为复杂的应用程序的开发人员社区逐步形成。这些开发人员开始编写一些库和工具来缩短开发周期,并创造出了新一代更为高端的Web应用,同时也带来了对更高速浏览器的持续需求。这一循环持续了很多年,浏览器厂商不断改进他们的浏览器,JavaScript程序员又不断地提出新的需求。真正的革命始于2008年,当时Google发布了Chrome浏览器,还带来了更迅速的即时编译器——JavaScript V8引擎。Google的V8引擎大大提升了JavaScript的执行效率,进而彻底改变了Web应用的开发过程。更重要的是,V8引擎是开源的,允许开发人员在浏览器之外重新塑造JavaScript。Node.js是这次革命的第一批产物之一。

在尝试了很多其他选择后,程序员Ryan Dahl发现V8引擎刚好适合他的非阻塞I/O试验品Node.js。该试验品的理念很简单,为开发人员创建一个非阻塞的程序,让他们更好地利用系统资源并编写出更具响应性的应用程序。最终通过利用JavaScript的非阻塞特性,一个极小但是功能强大,且独立于浏览器的平台被搭建出来。Node简炼的模块系统使得开发人员能够通过利用第三方模块自由地扩展平台,从而使几乎所有功能得以实现。在线社区的反作用促进了多种工具的创建,从现代Web框架到机器人服务平台等。然而,服务器端JavaScript仅仅是一个开始。

2007年,已经在Web应用开发中积累了大量经验的Dwight Merriman和Eliot Horowitz,开始联手打造一个可扩展的虚拟主机解决方案。但是结果不尽人意,因此在2009年,他们决定将平台切分后开源,其中包括基于V8的数据库——MongoDB。MongoDB的名字来源于humongous,它是一个使用类JSON动态模式数据模型的可扩展NoSQL数据库。通过使开发人员能够灵活处理复杂数据,以及提供关系数据库的一些特性,如高级查询和易扩展性,MongoDB备受瞩目。而其所提供的特性最终使MongoDB成为NoSQL数据库主导解决方案之一。JavaScript又一次打破了边界。然而JavaScript的革命者们没有忘记他们的初衷,事实上,现代浏览器的流行创造了JavaScript前端框架开发的新浪潮。

2009年,Miško Hevery和Adam Abrons在搭建一个以JSON提供服务的平台时发现,仅靠JavaScript通用类库已经远远无法满足需求。这个平台的富Web应用特性需要一个可以减少枯燥工作,并能维护现有代码库的结构化框架。在放弃了最开始的打算后,他们决定开发一个满足这一需求的前端框架——AngularJS,并将其开源。想法是将HTML和JavaScript更好地融合在一起,并支持推广单页应用开发。最终一个富Web框架诞生了,它将双向数据绑定、跨组件依赖注入、基于MVC的组件等概念带到了Web前端开发人员面前。AngularJS和其他MVC框架彻底改变了Web前端开发,将一度难以维护的前端代码转化为支持测试驱动开发(TDD)等高级开发模式的有组织的代码库。

借助不断丰富的开源协作工具,乐于奉献的天才工程师们创造了世界上最有价值的社区之一。更重要的是,这些主要变革使得在三层Web应用开发中,所有层的编程语言全部统一到JavaScript上来——这一理念被称之为全栈JavaScript,MEAN是这一理念的硕果之一。

1.3 MEAN简介

MEAN是MongoDB、Express、AngularJS和Node.js的缩写。其理念是仅使用JavaScript一种语言来驱动整个应用。其最鲜明的特点有以下几个:

  • 整个应用只使用一种语言;
  • 整个应用的所有部分都支持MVC架构,而且都必须使用MVC架构;
  • 不再需要对数据结构进行串行化和并行化操作,只需使用JSON对象来进行数据封装即可。

但是,依然有一些很重要的问题等待我们去探索答案。

  • 怎样将所有组件连接在一起?
  • Node.js是一个由众多模块组成的庞大生态系统,那么我们该选择哪些模块使用呢?
  • JavaScript是范式不可知的,那么怎样维护应用的MVC结构?
  • JSON是一个不需要定义模型的数据结构,那么应该在何时以怎样的方式对数据进行建模?
  • 怎样处理用户的身份验证?
  • 怎样用Node.js的非阻塞架构来进行实时交互?
  • 怎样测试MEAN的代码库?
  • 有哪些JavaScrip开发工具可以用来加速MEAN应用的开发?

本书要解决的问题远不止这些,但在开始之前,首先需要安装一些必备的工具。

1.4 安装MongoDB

如果想要安装MongoDB的稳定版,最简单的办法是去MongoDB的官方网站上下载二进制安装文件,该网站分别提供了与Linux、Mac OS X和Windows相应的版本。务必注意,你下载的版本必须与你的操作系统架构相对应。如果你的操作系统是Windows或者Linux,请根据你的系统架构下载32位或者64位版本,如果是Mac OS X则最好下载64位版本。

注意

MongoDB的版本号规则是,偶数标明的是稳定版,因此2.2.x和2.4.x都是稳定版,而2.1.x和2.3.x则是非稳定版,不能用于生产环境。目前最新的稳定版是2.6.x。

在MongoDB的下载页面(http://mongodb.org/downloads),下载包含有二进制安装文件的压缩包。下载完成之后,将压缩包解压。mongod文件通常位于bin目录下。mongod进程运行的是MongoDB服务器的主进程,它可以作为一个独立的服务器,也可以作为MongoDB主从复制集中的从结点。在这里,我们将MongoDB作为一个独立服务器。mongod进程需要一个存储数据库文件的文件夹,其文件夹默认为/data/db,还需要一个监听服务器端口,其默认端口为27017。在接下来的几个小节中,我们将从最常用的Windows开始,来逐步了解MongoDB在不同操作系统中的安装过程。

注意

与MongoDB相关的更多信息,请参见MongoDB的官方文档库(https://mongodb.org)。

1.4.1 在Windows上安装MongoDB

从MongoDB官网上下载与你的操作系统相对应的安装文件后,将其解压,并移动到c:\mongodb路径下。在Windows系统中,MongoDB默认的数据文件存储目录为C:\data\db 。在命令提示符窗口中,进入到c:\下,输入如下的命令:

> md data\db

提示

你也可以在启动mongod时,通过--dbpath这个命令行参数来指定数据文件存储目录。

将MongoDB的文件放在正确的位置,并且创建好数据存储目录后,安装即完成。有以下两种方式来运行MongoDB的主服务。

1. 手动运行MongoDB服务

想要手动运行MongoDB,只需要运行二进制文件mongod即可。打开命令提示符窗口,运行如下命令:

> C:\mongodb\bin\mongod.exe

上面的命令可以启动MongoDB服务,监听27017端口。如果一切正常,你将会看到与下图类似的命令行输出。

图像说明文字

在Windows上启动MongoDB服务

当Windows安全级别较高时,将会弹出提示你禁止相关服务功能的安全警告。在遇到这种情况时,请选择一个私有网络并点击允许访问(Allow Access)。

注意

你应该了解的是,作为一个独立的服务,MongoDB在任何当选目录下都能正常运行。

2. 以Windows系统服务方式运行MongoDB

运行MongoDB,更常规的做法是在每次系统启动后自动运行该服务。设置以系统服务启动MongoDB,需要为MongoDB的日志和配置文件指定一个存储路径,运行以下命令创建该路径:

> md C:mongodb\log

接下来,可以通过运行--logpath命令来创建MongoDB的配置文件。在命令提示符窗口中,输入如下命令:

> echo logpath=C:\mongodb\log\mongo.log > C:\mongodb\mongod.cfg

配置文件创建完成后,以管理员权限打开一个新的命令提示符窗口。方法是在开始菜单或者资源管理器中找到命令提示符的图标,单击右键并选择以管理员身份运行(Run as administrator)。在新的命令提示符窗口中,运行如下命令安装MongoDB服务:

> sc.exe create MongoDB binPath= "\"C:\mongodb\bin\mongod.exe\" --service --config=\"C:\mongodb\mongod.cfg\"" DisplayName= "MongoDB 2.6" start= "auto"

服务创建成功后,将会输出如下所示的日志信息:

[SC] CreateService SUCCESS

注意,要想系统服务成功安装,包含logpath参数的配置文件必须正确创建。安装完MongoDB服务后,以管理员权限打开命令提示符窗口,你可以通过运行如下命令来启动该服务:

> net start MongoDB

提示

下载示例代码

如果是通过Packt账号购买的Packt图书,可以在http://www.packtpub.com上下载相关的示例代码文件。如果是其他方式,可以访问http://www.packtpub.com/support,然后注册申请,以邮件方式获取其示例代码文件。

注意,如有需要,可以对MongoDB的配置文件进行修改。详情请参见http://docs.mongodb.org/manual/reference/configuration-options/

1.4.2 在Mac OS X和Linux上安装MongoDB

这部分将介绍在Unix系统上安装MongoDB的几种方法。下面从最简单的方法开始讲述——使用下载的MongoDB已预编译二进制文件。

1. 使用二进制文件安装MongoDB

除了从http://www.mongodb.org/downloads上下载与操作系统相应的二进制文件外,也可以用下面的命令使用CURL来下载:

$ curl -O http://downloads.mongodb.org/osx/mongodb-osx-x86_64-2.6.4.tgz

上述命令下载的是Mac OS X 64位版。根据操作系统的不同,需要对这个命令中的下载地址进行相应的修改。文件下载完成后,可以通过下面的命令来解压:

$ tar -zxvf mongodb-osx-x86_64-2.6.4.tgz

使用下面的命令简化解压后的文件夹名:

$ mv mongodb-osx-x86_64-2.6.4 mongodb

MongoDB的数据文件存储在其默认文件夹下,在Mac OS X和Linux系统中,该默认文件夹的路径为/data/db。在命令行工具中运行如下的命令:

$ mkdir -p /data/db

注意

创建文件夹时可能会出现一些权限问题,使用sudo或者超级用户来运行上述的命令即可。

上述命令的-p参数会逐级创建目录,因此该命令会创建文件夹data和db。需要注意的是,所创建的文件夹并不处于home目录下。运行如下命令,确保设置了该文件夹的权限:

$ chown -R $USER /data/db

一切就绪之后,在命令行工具中,进入到MongoDB所在目录的bin文件夹,启动mongod服务:

$ cd mongodb/bin
$ mongod

这就启动了MongoDB服务,并开始监听27017端口。如果一切正常,将显示类似于下图的命令行输出:

图像说明文字

在Mac OS X上启动MongoDB服务

2. 使用包管理器安装MongoDB

某些情况下,使用包管理器安装MongoDB是最简便的方法。不过缺点是有些包管理器并没有提供对最新版本的支持。好在MongoDB团队维护着针对RedHat、Debian和Ubuntu的官方包,并支持Mac OS X的Hombrew包管理器。请注意,为下载MongoDB服务器官方软件包,必须对配置包管理器库进行配置。

要在Red Hat Enterprise、CentOS和Fedora上使用Yum安装,请参阅http://docs.mongodb.org/manual/tutorial/installmongodb-on-red-hat-centos-or-fedora-linux/

要在Ubuntu上使用APT安装MongoDB,请参阅http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/

要在Debian上使用APT安装MongoDB,请参阅http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian/

要在Mac OS X上使用Homebrew安装MongoDB,请参阅http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/

1.4.3 使用MongoDB命令行工具

MongoDB压缩包里包含一个MongoDB命令行工具,可以用它来使用命令行与运行中的服务实例进行交互。进入MongoDB的bin目录,运行mongo服务即可启动。

$ cd mongodb/bin
$ mongo

只要MongoDB安装无误,命令行工具将自动使用test数据库连接本地服务实例。命令行将会有类似于下图的输出:

图像说明文字

}在Mac OS X上运行MongoDB命令行工具

运行如下命令进行数据库测试:

> db.articles.insert({title: "Hello World"})

上述命令将创建一个名为article的集合,并插入一个包含title属性的JSON对象。执行如下命令检索article集合中的对象:

> db.articles.find()

命令行将会有如下的输出:

{ _id : ObjectId("52d02240e4b01d67d71ad577"), title: "Hello World " }

大功告成!这表明MongoDB实例已经正常运行,并且成功地通过MongoDB命令行工具与之交互。在后面的章节中,将会进一步介绍MongoDB及MongoDB命令行工具的使用。

1.5 安装Node.js

安装Node.js稳定版本最简单的办法也是使用二进制文件,Node.js官方网站上提供了下载地址,可用于Linux、Mac OS X和Windows系统。同样要注意下载与目标操作系统架构一致的文件。如果你使用的是Windows和Linux,则要注意对32位和64位版本的选择。基于安全的考虑,Mac用户应选择64位版为宜。

注意

Node.js的版本号模式与MongoDB一致,版本号为偶数的是稳定版,如0.8.x和0.10.x都是稳定的,而0.9.x和0.11.x则不应用于生产环境。目前最新的稳定版是0.10.x。

1.5.1 在Windows上安装Node.js

在Windows上安装Node.js是项很简单的任务,使用一个单独的安装程序即可完成。第一步,在http://nodejs.org/download/上下载正确的.msi文件,注意有32位和64位版本的区分,下载时选择与操作系统架构相应的版本。

运行下载的安装程序,如果弹出了安全警告窗口,点击运行(Run)即可启动安装向导,接着与下图类似的安装界面将会出现:

图像说明文字

Windows中的Node.js安装向导

点击Next即可开始安装。片刻之后,与下图类似的安装成功提示将会出现。

图像说明文字

Windows中的Node.js安装成功确认

1.5.2 在Mac OS X上安装Node.js

在Mac OS X上使用一个单独的安装程序即可简便完成Node.js的安装。用于安装的.pkg文件可在http://nodejs.org/download/上下载。

下载完成后,运行安装程序即可看到与下图类似的安装界面:

图像说明文字

Mac OS X上Node.js安装向导

点击Continue即可开始安装。安装程序需要你确认许可证协议和选择目标文件夹。选择最佳选项之后再次点击Continue按钮,安装程序需要你确认安装信息,并要求你输入系统用户密码。片刻之后,与下图类似的界面将会出现,提示你Node.js安装成功。

图像说明文字

Mac OS X上Node.js安装成功确认

1.5.3 在Linux上安装Node.js

在Linux上安装Node.js,需要在官网上下载tarball包文件。最好的办法是下载最新的源代码,然后编译并生成安装文件再安装。先到http://nodejs.org/download/下载.tar.gz文件,使用如下命令对文件进行解压并安装:

$ tar -zxf node-v0.10.31.tar.gz
$ cd node-v0.10.31
$ ./configure && make && sudo make install

如果一切正常,Node.js即安装完成。注意上述命令是用于0.10.31这个版本的。请注意在运行该命令之前将此数字替换为你所下载的版本的版本号。对于安装中遇到的任何问题,可以查阅Node.js团队创建的安装选项文档,地址是:https://github.com/joyent/node/wiki/installation

注意

你可以通过访问https://nodejs.org上的官方文档了解更多关于Node.js的信息。

1.5.4 运行Node.js

安装完成后,可以通过Node.js提供的命令行界面(Commond-Line Interface,CLI)使用Node.js。在命令行工具中执行如下命令:

$ node

这便可启动Node.js的命令行界面,它可以接收JavaScript语句的输入。测试安装是否成功,运行如下命令:

> console.log('Node is up and running!');
Node is up and running!
undefined

执行成功!不过最好再试试JavaScript文件的执行。创建一个名为application.js的文件,然后在文件中输入如下代码:

console.log('Node is up and running!');

执行如下命令将上述文件名设置为Node命令行界面的第一个参数,即可运行该文件:

$ node application.js
Node is up and running!

执行完成!你的第一个Node.js应用创建成功。使用CTRL+D或者CTRL+C退出Node命令行界面。

1.6 NPM简介

Node只是一个平台,它的功能和API将只是一个最小集。想获得更多的功能,可以使用模块系统来扩展平台。安装、更新和删除Node.js模块最好的方法是使用NPM工具。NPM有如下两个主要特性:

  • 作为包注册登记中心,用于第三方模块的查阅、下载和安装;
  • 作为命令行界面,用于管理项目或系统全局的包。

通常情况下,安装Node.js时即一并安装了NPM,我们就直接开始用它吧。

NPM使用

为了理解NPM是如何工作的,可以先试着安装一下后面的章节将会用到的Express这个Web框架。NPM是一个稳健的包管理器,它集中注册了公开的模块。你可以通过访问官方网站https://npmjs.org/浏览所有可用的公开包。

大多数注册到登记中心的包都是开源的,由Node.js社区开发人员提供。在开发一个开源的模块时,包的作者可以决定是否将其发布到集中注册登记中心,以便让其他开发人员下载并用于各自的项目中。在包配置文件中,包作者会选择一个唯一标示符作为包的名字,以用于包的下载。

注意

你可以通过访问https://npmjs.org上的官方文档了解更多关于Node.js的信息。

1. NPM的安装过程

务必注意,NPM有两种安装模式:本地和全局。常规的做法是将第三方包以本地模式安装到应用目录下的node_modules文件夹中,这也是NPM默认的安装模式。它不会影响到系统全局,更不会增加一些不必要的全局文件而污染系统。

全局模式用来安装需要作为全局使用的Node.js的安装包。通常这些包都是一些命令行工具,比如后面的章节将会涉及的Grunt。通常情况下,这些包的作者会给出明确提示,这些包需要全局安装。因此,当无法确认使用哪种安装模式时,就选择本地模式。全局模式安装的模块可以用于本系统中所有Node.js应用,类Unix系统中的安装路径一般为/usr/local/lib/node_modules,Windows中的一般为C:\Users\%USERNAME%\AppData\Roaming\npm\node_modules。

(1) 使用NPM安装包

找到需要安装的安装包之后,可以使用如下命令来安装:

$ npm install <Package Unique Name>

全局安装模式与本地安装模式类似,只需要加一个-g参数:

$ npm install -g <Package Unique Name>

注意

如果当前用户没有权限进行全局模式安装,使用root用户或者sudo进行安装即可。

例如,我们想在本地安装Express,首先进入应用所在目录,然后执行如下命令:

$ npm install express

上述命令将在本地的node_modules目录中安装Express的最新稳定版。此外,NPM还支持多种语义的版本号,在安装某一指定版本时,如下所示运行npm命令进行安装:

$ npm install <Package Unique Name>@<Package Version>

例如,要安装Express的第二个大版本,可以使用如下命令:

$ npm install express@2.x

这样便可安装Express 2的最新稳定版。上述命令格式支持NPM下载并安装Express 2的任意次要版本。想要了解更多关于所支持的语义版本语法的信息,请访问https://github.com/isaacs/node-semver

如果需要安装的包存在依赖软件包,NPM会自动安装其所依赖的包,并在包的文件夹内创建node_modules,用以存储依赖包。在上述例子中,Express的依赖包将会安装到node_modules/express/node_modules中。

(2) 使用NPM删除包

要删除所安装的包,首先进入应用所在文件夹,并执行如下命令即可:

$ npm uninstall < Package Unique Name>

NPM会根据指定的安装包名称查找包,找到之后可以从本地的node_nodules目录中删除它。要想删除一个全局包,增加一个-g参数即可,如下所示:

$ npm uninstall –g < Package Unique Name>
(3) 使用NPM更新包

想要将包更新到最新版,执行如下命令:

$ npm update < Package Unique Name>

不管本地是否存在这个包,NPM都会去下载和安装该指定包的最新版。要想更新一个全局包,执行如下命令:

$ npm update –g < Package Unique Name>

2. 使用package.json管理依赖

安装一个包很简单,但很快,你的应用会需要用到一些依赖包,这时就需要一个更好的方法管理这些依赖包。基于这一目的,NPM支持通过使用配置文件来定义应用的各个元数据属性,如应用的名称、版本、作者名字等。该配置文件名为package.json,存储于应用根目录下。除自定义的应用外,它还可以用来自定义应用的依赖。

package.json文件是一个JSON文件,应用的属性以键值的方式存储在其中。

一个使用Express和Grunt最新版的应用的package.json是这样定义的:

{
  "name" : "MEAN",
  "version" : "0.0.1",
  "dependencies" : {
    "express" : "latest",
    "grunt" : "latest"
  }
}


注意

应用的名字和版本号是必填项,去掉这两个属性将会影响到NPM的使用。

(1) 创建package.json文件

除了手动创建package.json文件,还有一种更简单的方法,那就是使用npm init命令。在命令行工具中输入如下命令:

$ npm init

NPM会提出一些关于应用的问题,并自动创建一个新的package.json文件。示例创建过程类似于下图所示:

图像说明文字

在Mac OS X中使用NPM init

上述文件创建完成后,可以修改该文件并添加一些相关的依赖属性。一般的package.json格式如下:

{
  "name": "MEAN",
  "version": "0.0.1",
  "description": "My First MEAN Application",
  "main": "server.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
    },
    "keywords": [
      "MongoDB",
      "Express",
      "AngularJS",
      "Node.js"
    ],
    "author": "Amos Haviv",
    "license": "MIT",
    "dependencies": {
      "express": "latest",
      "grunt": "latest"
    }
  }


注意

上述示例代码中使用了latest作为关键字,以便NPM能够安装这些包的最新版。但是,为避免在开发周期内应用依赖包不断发生变化,我们强烈建议你指定一个具体的版本号或者版本号范围。原因在于一些包的新版本并不一定会向前兼容旧版本,这将会给你的应用带来极大的影响。

(2) 安装package.json中的依赖

创建完package.json文件后,就可以用它来安装应用的依赖了。进入应用的根目录,在命令行中执行npm install命令,如下所示:

$ npm install

NPM会自动检测到已存在的package.json文件,并根据该文件中的配置将应用的依赖安装到本地的node_modules文件夹中。另外一个安装应用依赖的方法是使用npm update命令,而且在某些情况下,这种方法更为简便。如下所示:

$ npm update

这样既可保证所有的包都会被安装,又能将已安装的包更新到其指定的版本(或版本范围)。

(3) 更新package.json文件

npm install命令还有一个强大的功能,那就是在安装包的同时,将包的信息保存到package.json的依赖关系中。只需要在安装包的时候加上--save参数即可。例如,要安装最新版的Express并将其加入到依赖关系中,执行如下命令即可:

$ npm install express --save

NPM将安装最新版的Express,并在package.json中添加对Express的依赖。在后面的章节中,为了便于理解,我们将手动编辑package.json文件。但这一特性在日常开发中是有效的。

注意

关于更多NPM配置文件相关选项的说明,请参见https://npmjs.org/doc/json.html上的官方文档。

1.7 总结

本章中,你学到了如何安装MongoDB及使用命令行工具连接本地的数据库实例。也学到了如何安装Node.js以及使用Node.js命令行工具。还了解了NPM,以及如何使用NPM下载和安装Node.js包,如何使用package.json文件轻松地管理应用的依赖。下一章中,我们将讨论Node.js基础知识,以及如何创建Node.js Web应用。

目录

  • 版权声明
  • 致谢
  • 前言
  • 第1章 MEAN简介
  • 第2章 Node.js入门
  • 第3章 使用Express开发Web应用
  • 第4章 MongoDB入门
  • 第5章 Mongoose入门
  • 第6章 使用Passport模块管理用户权限
  • 第7章 AngularJS入门
  • 第8章 创建MEAN的CURD模块
  • 第9章 基于Socket.io的实时通信
  • 第10章 MEAN应用的测试
  • 第11章 MEAN应用的调试与自动化