Node.js 嚐鮮筆記
Node.js 是一個基於 Chrome V8 引擎的 JavaScript 執行環境。Node.js 使用了一個事件驅動、非阻塞式 I/O 的模型,使其輕量又高效。Node.js 的包管理器 npm 是全球最大的開源生態系統。
– Node.js 中文網
如果我們使用 PHP 來編寫後端的程式碼時,需要 Apache 或者 Nginx 的 HTTP 伺服器,並配上 mod_php5 模組和 php-cgi。
從這個角度看,整個“接收 HTTP 請求並提供 Web 頁面”的需求根本不需要 PHP 來處理。
不過對 Node.js 來說,概念完全不一樣了。使用 Node.js 時,我們不僅僅在實現一個應用,同時還實現了整個 HTTP 伺服器。事實上,我們的 Web 應用以及對應的 Web 伺服器基本上是一樣的。
– 菜鳥教程
下面記錄了在 Windows 和 Ubuntu 中使用 Node.js 的筆記。
(筆者的系統環境為 Windows 10 64位,Ubuntu 14.4 64位)
安裝
Node.js 中文網目前提供了兩個版本——v4.4.4
的長期支援版本和 v6.2.0
的最新穩定版本。筆者選擇了 v6.2.0
。
(Node.js 官網目前提供的版本是 v6.9.2 LTS
和 v7.3.0 Current
)
Windows
對於 Windows,有 .msi
和 .exe
兩種安裝方式。下載 .exe
,放在 D:\Nodejs\\
目錄。
(此處注意一點,為了方便使用命令 node
,儘量不要修改檔名 node.exe
。如果選擇 .msi
安裝方式則無此顧慮。)
配置環境變數
將 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
配置環境變數
將 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
)
配置環境變數 /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
- 其三,編譯原始碼
略。
可見第一種方式最簡單,但缺點就是版本老舊;第二種方式可以使用較新的版本;第三種方式待筆者進階再做嘗試。此處筆者選擇了第二種方式以繼續。
如果選擇第一種方式,可能需要對命令做一個連結,因為其他地方會用到
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) {
// 傳送 HTTP 頭部
response.writeHead(200, {'Content-Type': 'text/plain'});
// 傳送相應資料
response.end('Hello, world!');
}).listen(8888);
// 終端列印以表示啟動成功
console.log('Server running at http://localhost:8888/');
執行
node hello.js
瀏覽器訪問 http://localhost:8888/
,出現 Hello, world!
,成功。
應用
在 Ubuntu 上部署 App 版本檢查更新服務。
cd /opt/node-v6.2.0-linux-x64
mkdir SchTtableAppVerCheck
cd SchTtableAppVerCheck
安裝 Express 框架
Express 是一個簡潔而靈活的 Node.js Web 應用框架,提供了一系列強大特性幫助你建立各種 Web 應用和豐富的 HTTP 工具。
– Node.js 中文網
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 資料檔案
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。
相關文章
- ent orm筆記1---快速嚐鮮ORM筆記
- Julia 嚐鮮
- React Loops 嚐鮮ReactOOP
- React Suspense 嚐鮮React
- .Net8 Blazor 嚐鮮Blazor
- Vue.js 2.6嚐鮮Vue.js
- Go 1.17 泛型嚐鮮Go泛型
- Windows 10 週年版嚐鮮Windows
- 利用Conda嚐鮮Python 3.10Python
- 鴻蒙系統嚐鮮鴻蒙
- TiDB 4.0 新特性嚐鮮指南TiDB
- HTML5中dialog元素嚐鮮HTML
- Spring Cloud Gateway 閘道器嚐鮮SpringCloudGateway
- Flutter新版本 Web App 嚐鮮FlutterWebAPP
- Oracle 19c 安裝嚐鮮Oracle
- node.js筆記Node.js筆記
- 【轉】Kinect嚐鮮(1)——第一個程式
- Webpack5.0 新特性嚐鮮實戰 ??Web
- TiDB at 豐巢:嚐鮮分散式資料庫TiDB分散式資料庫
- 嚐鮮:Gradle構建SpringBoot(2.3.1最新版)GradleSpring Boot
- 【Flutter桌面篇】Flutter&Windows應用嚐鮮FlutterWindows
- Node.js EventEmitter 筆記Node.jsMIT筆記
- Vue嚐鮮快速、零配置的打包工具—parcel~Vue
- 嚐鮮少程式碼高效能的Svelte框架框架
- IDA 替代品Ghidra已來,速速下載嚐鮮!
- Flutter嚐鮮:跨平臺移動應用開發Flutter
- Vue3 外掛開發詳解嚐鮮版Vue
- 客戶端效能測試利器PerfDog嚐鮮體驗客戶端
- Spring Boot 2.0(二):Spring Boot 2.0嚐鮮-動態 BannerSpring Boot
- Java協程程式設計之Loom專案嚐鮮Java程式設計OOM
- 寫註釋就能自動出程式碼?copilot 嚐鮮
- Node.js學習筆記(一)Node.js筆記
- Node.js學習筆記1Node.js筆記
- <node.js學習筆記(1)>Node.js筆記
- <node.js學習筆記(2)>Node.js筆記
- 筆記:Node.js Postgresql踩坑筆記Node.jsSQL
- 【嚐鮮】flutter3桌面版微信EXEFlutter
- 無依賴單機嚐鮮 Nebula Exchange 的 SST 匯入
- 中國風?古典系?AI中文繪圖創作嚐鮮!⛵AI繪圖