Node.js和Express簡單入門

Node.js和Express簡單入門,僅僅入門如何用Node.js和Express搭建一個web服務器,沒有說明太多概念性的東西。

一、 Nodejs簡介

? ==Node是JavaScript語言的服務器運行環境。==

? 所謂“運行環境”有兩層意思:首先,JavaScript語言通過Node在服務器運行,在這個意義上,Node有點像JavaScript虛擬機;其次,Node提供大量工具庫,使得JavaScript語言與操作系統互動(比如讀寫文件、新建子進程),在這個意義上,Node又是JavaScript的工具庫。

? Node內部采用Google公司的V8引擎,作為JavaScript語言解釋器;通過自行開發的libuv庫,調用操作系統資源。

二、Node.js的下載和安裝

2.1 Node.js下載

node.js官網下載

官網會根據你當前的操作系統,提供給你最合適的版本去下載。

2.2 安裝

? 下載成功之後是一個msi文件,雙擊安裝即可。安裝成功後,相應的環境變量都會自動配置,不需要我們再去手動配置。

? 一路next就可以安裝成功。

2.3 測試Node.js是否安裝成功

安裝成功之後,可以在window控制臺查看是否安裝成功。

輸入下面的命令查看node的版本。

node -v

直接輸入node然後回車,就可以讓node去執行我們的js代碼瞭。

node

2.4 使用Node.js運行JavaScript代碼

新建一個nodeproject目錄,新建一個js文件。01_hello.js

var num1 = 10;

var num2 = 20;

console.log(num1 + num2);

在windows控制臺中,切換目錄到js文件所在目錄。然後輸入

node 01_hello.js

三、Node.js中的一些基本概念澄清

3.1 Node.js不是JS應用、而是JS運行平臺

? 看到Node.js這個名字,初學者可能會誤以為這是一個Javascript應用,事實上,Node.js采用C++語言編寫而成,是一個Javascript的運行環境。

? 既然不是Javascript應用,為何叫.js呢?因為Node.js是一個Javascript的運行環境。提到Javascript,大傢首先想到的是日常使用的瀏覽器,現代瀏覽器包含瞭各種組件,包括渲染引擎、JavaScript引擎等,其中Javascript引擎負責解釋執行網頁中的Javascript代碼。作為Web前端最重要的語言之一,Javascript一直是前端工程師的專利。不過,Node.js是一個後端的Javascript運行環境(支持的系統包括Linux、Windows),這意味著你可以編寫系統級或者服務器端的Javascript代碼,交給Node.js來解釋執行,

3.2 Node.js與JavaScript的關系

? JavaScript包括3個部分:ECMAScript-262、BOM、DOM。BOM與瀏覽器相關,DOM和HTML頁面相關。Node.js中隻是包括瞭ECMAScript-262。所以我們以前的一些關於BOM的操作和DOM的操作都是基於瀏覽器端運行的,在Node.js中是無法使用的。

3.3 Node.js中幾個全局變量

global:表示Node所在的全局環境,類似於瀏覽器的window對象。需要註意的是,如果在瀏覽器中聲明一個全局變量,實際上是聲明瞭一個全局對象的屬性,比如var x = 1等同於設置window.x = 1,但是Node不是這樣,至少在模塊中不是這樣(REPL環境的行為與瀏覽器一致)。在模塊文件中,聲明var x = 1,該變量不是global對象的屬性,global.x等於undefined。這是因為模塊的全局變量都是該模塊私有的,其他模塊無法取到。

process:該對象表示Node所處的當前進程,允許開發者與該進程互動。

console:指向Node內置的console模塊,提供命令行環境中的標準輸入、標準輸出功能。

3.4 Node.js中的幾個全局函數

setTimeout():用於在指定毫秒之後,運行回調函數。實際的調用間隔,還取決於系統因素。間隔的毫秒數在1毫秒到2,147,483,647毫秒(約24.8天)之間。如果超過這個范圍,會被自動改為1毫秒。該方法返回一個整數,代表這個新建定時器的編號。

clearTimeout():用於終止一個setTimeout方法新建的定時器。

setInterval():用於每隔一定毫秒調用回調函數。由於系統因素,可能無法保證每次調用之間正好間隔指定的毫秒數,但隻會多於這個間隔,而不會少於它。指定的毫秒數必須是1到2,147,483,647(大約24.8天)之間的整數,如果超過這個范圍,會被自動改為1毫秒。該方法返回一個整數,代表這個新建定時器的編號。

clearInterval():終止一個用setInterval方法新建的定時器。

require():用於加載模塊。

Buffer():用於操作二進制數據。

3.5 Node.js的核心模塊

如果隻是在服務器運行JavaScript代碼,用處並不大,因為服務器腳本語言已經有很多種瞭。Node.js的用處在於,它**本身**還提供瞭一系列功能模塊,與操作系統互動。這些核心的功能模塊,不用安裝就可以使用,下面是它們的清單。

http:提供HTTP服務器功能。 url:解析URL。 fs:與文件系統交互。 querystring:解析URL的查詢字符串。 child_process:新建子進程。 util:提供一系列實用小工具。 path:處理文件路徑。 crypto:提供加密和解密功能,基本上是對OpenSSL的包裝。

三、搭建web應用

? 使用Node.js搭建web服務器,一般使用一些框架來幫助完成。

? express 是一個開源的node.js項目框架,初學者使用express可以快速的搭建一個Web項目,express中已經集成瞭Web的http服務器創建、請求和文件管理以及Session的處理等功能,所以express是非常適合初學者的入門學習。

3.1 安裝Express框架

使用node.js自帶的包管理器npm安裝。

創建一個項目目錄,Node_Hello。進入該目錄,創建一個package.json文件,文件內容如下:

{

"name": "Node_Hello",

"description": "nodejs hello world app",

"version": "0.0.1",

"private": true,

"dependencies": {

"express": "4.x"

}

}

上面代碼定義瞭項目的名稱、描述、版本等,並且指定需要4.0版本以上的Express。

==從控制臺首先進入剛才的項目目錄==,然後輸入如下命令,則會開始下載Express。

npm install

下載完成

3.2 創建啟動文件

? 在上面的項目目錄下,新建一個啟動文件,名字暫叫 ==index.js== 。書寫如下代碼:

var express = require('express');

var app = express();

app.get('/', function (req, res) {

res.send('

你好,這是我們的第一個nodejs項目

'); }); app.listen(8080);

3.3 運行index.js文件

node index.js

3.4 使用瀏覽器訪問

在瀏覽器輸入下面的地址就可以訪問我們剛剛搭建的web網站瞭。

https://127.0.0.1:8080

四、使用Webstorm搭建Node.js web應用

? 使用webstorm搭建Node.js應用更加方便。

4.1 下載WebStorm,並安裝

官網下載Webstorm

下載完成後,直接安裝即可。

4.2 創建Node + Express應用

4.3 Project目錄結構

app.js:啟動文件,或者說入口文件

package.json:存儲著工程的信息及模塊依賴,當在 dependencies 中添加依賴的模塊時,運行 npm install ,npm 會檢查當前目錄下的 package.json,並自動安裝所有指定的模塊

node_modules:存放 package.json 中安裝的模塊,當你在 package.json 添加依賴的模塊並安裝後,存放在這個文件夾下

public:存放 image、css、js 等文件

routes:存放路由文件

views:存放視圖文件或者說模版文件

bin:存放可執行文件(www)

發佈留言