以下用 Docker 來快速建置環境與練習
可以參考 Docker Hub 選擇 Docker image 版本,這裡使用 node:4.4 做練習
HelloWorld
首先先建立 app.js 開始寫 HelloWorld 程式
console.log("HelloWorld");使用 Docker 去 run 這隻程式:
docker pull node:4.4
docker run --rm -v `pwd`:/usr/src/app -w /usr/src/app node:4.4 node app.js輸出範例如下
$ docker run --rm -v `pwd`:/usr/src/app -w /usr/src/app node:4.4 node app.js
HelloWorld
HTTP Server
Node.js 有內建基本的 HTTP Server 可以直接使用,程式碼如下:
var server;
var ip = "0.0.0.0";
var port = 3000;
var http = require('http');
server = http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
});
server.listen(port, ip);
console.log("Server running at http://" + ip + ":" + port);不過 Docker 只要 run 下去就無法中斷了,目前問題原因還不清楚
可以換進到 Docker bash run :
docker run --rm -v `pwd`:/usr/src/app -w /usr/src/app -p 3000:3000 node:4.4 bash
# In docker container
node app.js執行後會出現監聽訊息
$ node app.js
Server running at http://0.0.0.0:3000
這時開頁面就可以看到 HelloWorld 了
npm
NPM 全名為 Node Package Manager,為套件管理工具,類似 PHP 的 Composer 或 Ruby 的 Gem
使用 Docker 初始化 NPM 套件定義檔
docker run --rm -it -v `pwd`:/usr/src/app -w /usr/src/app node:4.4 npm init -y執行完後,會多一個檔叫 package.json。假如要裝 Express 可以下指令安裝
docker run --rm -it -v `pwd`:/usr/src/app -w /usr/src/app node:4.4 npm install express --savenpm Command
上述 Docker 每次執行完之後都會移除 container,所以如果有裝全域套件的需求時,建議可以使用 Dockerfile 安裝
比方說我想要用 express 的指令,首先建立一個名為 Dockerfile 的檔案:
FROM node:4.4
RUN npm install -g express-generator然後下指令建 image
docker build -t=mynode .建完後就可以用 mynode 來 run express 了
docker run --rm -it -v `pwd`:/usr/src/app -w /usr/src/app mynode express