天天看點

Node 研究體會

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');

});

繼續閱讀