1、node安裝,去官網下載下傳安裝包即可。
2、簡單測試。在磁盤某個目錄下(例如:D:\nodejs)建立一個JavaScript檔案,即字尾為.js的檔案,複制下來代碼,在浏覽器中輸入http://127.0.0.1:8888/即可看到執行情況。
注意,同一目錄下建立input.txt檔案用來讀取檔案資料。
var fs = require("fs");
var data = fs.readFileSync('input.txt');
console.log(data.toString());
console.log("程式執行結束!");
fs.readFile('input.txt', function (err, data) {
if (err) return console.error(err);
console.log(data.toString());
});
console.log("程式執行結束!");
var http = require('http');
http.createServer(function (request, response) {
// 發送 HTTP 頭部
// HTTP 狀态值: 200 : OK
// 内容類型: text/plain
response.writeHead(200, {'Content-Type': 'text/plain'});
// 發送響應資料 "Hello World"
response.end('Hello World\n');
}).listen(8888);
// 終端列印如下資訊
console.log('Server running at http://127.0.0.1:8888/');
3、在項目目錄下使用npm init指令初始化package.json.
4、在該項目中安裝node的子產品,“npm install xxx”會将xxx子產品安裝到目前路徑下,“npm install -g xxx”則将xxx子產品安裝到目前使用者的全局位置。使用“npm helo install”可以檢視install子指令的細節。要解除安裝一個子產品,使用“npm uninstall xxx”,假如你是全局安裝,則使用“npm uninstall -g xxx”。
在使用npm安裝某個子產品時,它會自動解決依賴。
注意:安裝全局的子產品需要配置環境變量才能使用。即-g指令全局安裝Node.js子產品後,需要設定環境變量NODE_PATH,否則在我們使用node指令啟動某個應用時可能會報找不到指定的子產品這種錯誤。要在NODE_PATH中添加多個子產品路徑,隻需用“;”分隔開即可。
5、安裝mime子產品,加載html頁面的不同類型檔案(css,js)相應。npm install mime
6、安裝ejs子產品,使用模版,進行頁面動态響應。npm install ejs
7、執行個體,讀取本地html檔案響應,代碼如下,讀取圖檔不需要轉字元串。
var http = require('http');
var fs = require('fs');
var url = require('url');
var path = require('path');
var mime=require('mime');
var ejs = require('ejs');
http.createServer(function (request, response) {
// 解析請求,包括檔案名
var pathname = url.parse(request.url).pathname;
//輸出請求的檔案名
//從檔案系統中讀取請求的檔案内容
fs.readFile(pathname.substr(1), function (err, data) {
if (err) {
// HTTP 狀态碼: 404 : NOT FOUND Content Type: text/plain
response.writeHead(404, {'Content-Type': 'text/html'});
// 發送響應資料
response.end("NOT FOUND Content");
}else{
var fileTmpMime=path.basename(pathname);
var resMime=mime.getType(fileTmpMime);
response.writeHead(200,{"Content-Type":resMime});
//發送響應資料
if(resMime.indexOf("image") >= 0){
response.end(data);
}else if(resMime.indexOf("/html") >= 0){
var context = {name:'李建成'};
//替換模版中的内容,傳回替換後的html字元串
var tmpHtml=ejs.render(data.toString(), context);
//使用替換後的html内容響應請求。
response.end(tmpHtml);
}else{
response.end(data.toString());
}
}
});
}).listen(8888);
8、安裝express 子產品,npm install express
9、測試執行個體代碼
// 引入 express 子產品
var express = require('express');
// 建立 express 執行個體
var app = express();
// 響應HTTP的GET方法
app.get('/', function (request, response) {
response.send('Hello World 李建成!');
});
// 監聽到8000端口
app.listen(8888, function () {
console.log('Hello World is listening at port 8888');
});