Node.js 嘗鮮筆記

Node.js 是一個基于 Chrome V8 引擎的 JavaScript 運行環(huán)境。Node.js 使用了一個事件驅(qū)動、非阻塞式 I/O 的模型,使其輕量又高效。Node.js 的包管理器 npm 是全球最大的開源生態(tài)系統(tǒng)。
Node.js 中文網(wǎng)

如果我們使用 PHP 來編寫后端的代碼時,需要 Apache 或者 Nginx 的 HTTP 服務器,并配上 mod_php5 模塊和 php-cgi。
從這個角度看,整個“接收 HTTP 請求并提供 Web 頁面”的需求根本不需要 PHP 來處理。
不過對 Node.js 來說,概念完全不一樣了。使用 Node.js 時,我們不僅僅在實現(xiàn)一個應用,同時還實現(xiàn)了整個 HTTP 服務器。事實上,我們的 Web 應用以及對應的 Web 服務器基本上是一樣的。
菜鳥教程

下面記錄了在 Windows 和 Ubuntu 中使用 Node.js 的筆記。
(筆者的系統(tǒng)環(huán)境為 Windows 10 64位,Ubuntu 14.4 64位)

安裝

Node.js 中文網(wǎng)目前提供了兩個版本——v4.4.4 的長期支持版本和 v6.2.0 的最新穩(wěn)定版本。筆者選擇了 v6.2.0。
Node.js 官網(wǎng)目前提供的版本是 v6.9.2 LTSv7.3.0 Current

Windows

對于 Windows,有 .msi.exe 兩種安裝方式。下載 .exe,放在 D:\Nodejs\\ 目錄。
(此處注意一點,為了方便使用命令 node,盡量不要修改文件名 node.exe。如果選擇 .msi 安裝方式則無此顧慮。)
配置環(huán)境變量
D:\Nodejs 添加到 PATH。
檢查

node -v

輸出如

v6.2.0

安裝 npm
GitHub 下載 npm 源碼 npm-4.0.5.zip,解壓到 D:\Nodejs\\,安裝

D:\>cd Nodejs\npm-4.0.5
D:\Nodejs\npm-4.0.5\>node cli.js install -gf

配置環(huán)境變量
D:\Nodejs\node_modules 添加到 NODE_PATH。
檢查

npm -v

輸出如

4.0.5
Ubuntu

對于 Ubuntu,也有多種安裝方式。

  • 其一,直接從倉庫安裝
apt-get install nodejs
apt-get install npm

檢查

nodejs -v
npm -v

輸出如

v0.10.25
1.3.10
  • 其二,下載編譯好的版本
wget 'https://nodejs.org/dist/v6.2.0/node-v6.2.0-linux-x64.tar.gz'
tar zxvf node-v6.2.0-linux-x64.tar.gz -C /opt

(該版本已自帶 npm
配置環(huán)境變量 /etc/profile

# Set Node.js environment
export NODE_HOME=/opt/node-v6.2.0-linux-x64
export NODE_PATH=${NODE_HOME}/lib/node_modules
export PATH=${PATH}:${NODE_HOME}/bin
source /etc/profile

檢查

node -v
npm -v

輸出如

v6.2.0
3.8.9
  • 其三,編譯源碼
    略。

可見第一種方式最簡單,但缺點就是版本老舊;第二種方式可以使用較新的版本;第三種方式待筆者進階再做嘗試。此處筆者選擇了第二種方式以繼續(xù)。

如果選擇第一種方式,可能需要對命令做一個鏈接,因為其他地方會用到node命令而不是nodejs

ln -s /usr/bin/nodejs /usr/bin/node

測試

編寫 HelloWorld 應用 hello.js

// 使用 require 指令來載入 http 模塊,并將實例化的 HTTP 賦值給變量 http
var http = require('http');

http.createServer(function(request, response) {
  // 發(fā)送 HTTP 頭部
  response.writeHead(200, {'Content-Type': 'text/plain'});
  // 發(fā)送相應數(shù)據(jù)
  response.end('Hello, world!');
}).listen(8888);

// 終端打印以表示啟動成功
console.log('Server running at http://localhost:8888/');

運行

node hello.js

瀏覽器訪問 http://localhost:8888/,出現(xiàn) Hello, world!,成功。

應用

在 Ubuntu 上部署 App 版本檢查更新服務。

cd /opt/node-v6.2.0-linux-x64
mkdir SchTtableAppVerCheck
cd SchTtableAppVerCheck

安裝 Express 框架

Express 是一個簡潔而靈活的 Node.js Web 應用框架,提供了一系列強大特性幫助你創(chuàng)建各種 Web 應用和豐富的 HTTP 工具。
Node.js 中文網(wǎng)

npm install express -g

* 幾個附加重要模塊

npm install body-parser -g
npm install cookie-parser -g
npm install multer -g

-g 全局安裝)
* npmjs.org 官方可能訪問較慢,可以使用淘寶 NPM 鏡像,頁面有操作方法,不再贅述。
編寫應用 app.js

var express = require('express');
var app = express();

// 文件讀寫模塊
var fs = require('fs');

app.get('/SchTtable/appversion.do', function(req, res) {
  var data;
  try {
    // 讀取 .js 代碼文件所在目錄的 .json 數(shù)據(jù)文件
    data = fs.readFileSync(__dirname + '/appversion.json', 'utf-8');
    // 檢查格式
    data = JSON.parse(data);
  } catch (err) {
    data = {};
    console.log(err);
  }
  res.jsonp(data);
});

var server = app.listen(8080, function() {
  var host = server.address().address;
  var port = server.address().port;

  console.log("http://%s:%s", host, port);
});

console.log('SchTtableAppVerCheck is running.');

完成后 ls 檢查

app.js  appversion.json  node_modules

運行

node app.js
如何后臺運行?

有兩種方法,其一 nohup 開進程;其二 forever 模塊管理。筆者采用第二種方法。
安裝 forever 模塊

npm install forever -g

運行

forever start app.js

檢查

forever list

停止

forever stop app.js

更多用法參考 foreverjs / forever。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容