> 原文地址?[https://blog.udemy.com/node-js-tutorial](https://blog.udemy.com/node-js-tutorial)
> 感謝來自Udemy的Samantha來信分享
最近有些忙,更新可能不及時,如有興趣希望大家去看原文網站。
## 搭建開發環境
在我們開始之前,為了開發MEAN應用你需要提前安裝一些開發工具。安裝這些工具需要15-20分鐘。安裝完成后,你就有了一個對于MEAN應用的開發環境,并且今后不需要再次安裝。
所以請先安裝我列舉的這些工具。如果你已經安裝了其中某些工具的話,可以跳過相關部分。
### 安裝Sublime Text
Sublime Text 是一個輕量級而且功能強大的代碼編輯器。你可以使用任何編輯器來構建node應用,但是如果你之前沒有使用過sublime的話,我建議你嘗試一下sublime。你可以在[http://sublimetext.com網站上進行下載。](http://sublimetext.xn--com-x28df2399d1sgtmtpip10a./)
### 安裝Mongo
登陸[http://mongodb.org](http://mongodb.org/)?然后點擊?**Download MongoDB**。按照官網上提供的文檔進行安裝。安裝過程很簡單,不像SQL Server那樣需要半個多小時,只需要一兩分鐘即可。
安裝完Mongo,你需要按照下面的操作來運行它。你需要創建一個目錄用來存儲Mongo的數據庫文件。這個目錄對于當前用于必須有寫權限。然后你需要啟動MongoD(Mongo Daemon),這是一個用來處理數據請求的后臺進程。
默認情況下,MongoD將會把數據存儲在系統盤的?**/data/db**目錄下(如果提示錯誤不存在,請自行創建)。在本教程中我建議你保持默認設置。如果你希望修改這個路徑,請參考官網上的指令進行修改。
接下來讓我們在默認配置下啟動Mongo
**對于windows用戶**
用管理員權限打開命令行窗口
~~~
> md \data\db
> cd “C:\Program Files\MongoDB\Server\3.0\bin” (你的MongoDB安裝目錄)
> mongod
~~~
注意你可以將MongoD設置為windows服務,這樣的話你就不用每次從命令行來啟動了。具體設置方法可以參考MongDB的官網。
然后你可以看到一個彈出窗口,顯示 MongoD listening for network connections. Give access to MongoD.
**對于Mac用戶**
打開終端
~~~
$ sudo mkdir -p /data/dbmd
$ whoami
moshfeghhamedani
$ sudo chown moshfeghhamedani /data/db
$ mongod
~~~
你將看見MongoD在命令行彈出窗口或者終端中執行正在等待連接。
[](http://yalishizhude.github.io/2015/10/17/mean-2/mongod.png)
如果你在啟動MongoD時發現了任何問題,最好查看MongoDB的官網然后進行完整安裝。
### 安裝Node
登陸[https://nodejs.org并且點擊安裝。不管是使用的是windows還是Mac,它將提供合適的裝程序。](https://nodejs.org%E5%B9%B6%E4%B8%94%E7%82%B9%E5%87%BB%E5%AE%89%E8%A3%85%E3%80%82%E4%B8%8D%E7%AE%A1%E6%98%AF%E4%BD%BF%E7%94%A8%E7%9A%84%E6%98%AFwindows%E8%BF%98%E6%98%AFmac%EF%BC%8C%E5%AE%83%E5%B0%86%E6%8F%90%E4%BE%9B%E5%90%88%E9%80%82%E7%9A%84%E8%A3%85%E7%A8%8B%E5%BA%8F%E3%80%82/)
安裝Node的時候會自動安裝NPM(Node Package Manager)。NPM對于Node來說有點像Ruby Gems對于Ruby和NuGet對于.NET。我們通過NPM來下載和安裝開源可復用的包/模塊到應用中。
## 安裝Express Generator
Express Generator是一個用來搭建應用的Node模塊。為了安裝Express Generator,我們需要打開另一個Mac的終端或者windows的命令提示窗口,
然后執行:
~~~
npm install -g express-generator
~~~
`-g`參數代表全局安裝。
### 搭建一個項目
所有的工具都已經安裝完畢。現在讓我用Express Generator搭建一個框架。我們將開發一個適用于錄像租賃店的叫Vidzy的應用。打開終端窗口,選擇一個合適的目錄來創建項目:
~~~
express Vidzy
~~~
Express Generator 將在Vidzy目錄下搭建一個應用。
現在在你喜歡的代碼編輯器中打開Vidzy文件夾。如果你使用的是Sublime,你可以把這個文件夾拖入Sublime。
下面是目錄結構
~~~
bin
www
public
images
javascripts
stylesheets
routes
index.js
users.js
views
error.jade
index.jade
layout.jade
app.js
package.son
~~~
**public**?我們將存儲一些公共資源到這個目錄下,例如javascript文件、樣式文件、圖片等。
**routes**?包括一系列的javascript文件,每一個文件都為該應用的給定模塊定義了一些路由以及業務邏輯。
**views**?包括了應用中的視圖文件。Express支持很多常見的模板引擎例如:Jade,Haml,EJS,Handlebars等。Jade是默認的模板引擎。
**app.js**程序的主入口。包括一些程序配置和聲明。
**package.json**每個Node應用都有一個這樣的文件。這個文件用來描述當前應用的信息和依賴的插件。
我們打開pakcage.json,可能看到如下信息:
~~~
{
"name": "Vidzy",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"body-parser": "~1.13.2",
"cookie-parser": "~1.3.5",
"debug": "~2.2.0",
"express": "~4.13.1",
"jade": "~1.11.0",
"morgan": "~1.6.1",
"serve-favicon": "~2.3.0"
}
}
~~~
在文件中,我們定義了程序的名稱和版本以及依賴模塊。所有這些依賴模塊都是用Node編寫的模塊。
### 安裝依賴模塊
當你通過Express Generator生成一個應用時,這些依賴模塊并沒有被安裝。它們只是在package.json文件中進行了配置。你需要單獨安裝這些依賴。
來安裝這些依賴,首先返回到控制臺并且輸入命令:
~~~
cd Vidzy
npm install
~~~
安裝需要花費一些時間。NPM將參照?**package.json**?文件中定義的依賴。然后它將從NPM倉庫中下載這些依賴到一個叫做?**node_modules**?的目錄中。讓我們看看這些模塊吧。
在?**Vidzy**?文件夾中,進入?**node_modules/express**,注意這個目錄下有另一個?**package.json**用來定義Express.js的依賴模塊。所以,這里也有另一個?**node_modules**目錄來存儲依賴模塊。這就是一個Node應用的常見目錄結構。每一個模塊都有一個?**package.json**文件和一個?**node_modules**?文件夾。
### 安裝Nodemon
當你啟動Node應用的時候,一個用來接收請求的最基本的web服務器就在3000端口上啟動了。如果你修改了代碼,這些改變將不會生效直到你重啟了服務器。頻繁的重啟服務器來使代碼生效是一件蛋疼的事情。為了解決這個問題,我們使用?**Nodemon**,這個模塊在檢測到源文件修改時自動重啟web服務器。
安裝Nodemon:
~~~
npm install nodemon -g
~~~
### 安裝Monk
Monk是一個用來讀寫MongoDB的Node模塊。
安裝monk:
~~~
npm install monk --save
~~~
`--save`參數告訴NPM將這個依賴加入到package.json文件中。這樣做的好處就是你將代碼提交到版本庫,別人將代碼簽出,所有的依賴模塊都可以從就package.json中讀取出來。(也就是說我們不需要保存這些第三方模塊,任何時候我們搭建項目只需要讀取這個package.json文件即可安裝,減少了項目的維護代碼)。然后只需要簡單的執行?**npm install**,然后自動安裝這些引用模塊。這就是我們搭建應用框架的時候需要做的事情。
### 運行應用
太棒了!我們已經安裝了所有需要的工具。現在是時候來運行應用了。從控制臺進入Vidzy目錄輸入以下命令:
~~~
nodemon
~~~
Nodemon將在3000端口上啟動你的web服務器。你可能會看到一個彈出窗口顯示Node正在偵聽連接。
現在啟動你的瀏覽器跳轉到
[http://localhost:3000](http://localhost:3000/)
這就是你的第一個express應用。
[](http://yalishizhude.github.io/2015/10/17/mean-2/express.png)
接下來的幾個章節,我們將為這個錄像租賃店應用開發各種功能。