node.js(一)

   Node.js的簡介

    Node.js 就是運行在服務端的 JavaScript。

    Node.js 是一個基於Chrome JavaScript 運行時建立的一個平臺。

    Node.js是一個事件驅動I/O服務端JavaScript環境,基於Google的V8引擎,V8引擎執行Javascript的速度非常快,性能非常好。

 

Node.js的特性

非阻塞I/O特性:

  • 阻塞:I/O時進程休眠等待, 等待I/O完成後再進行下一步(就是排隊的時候,一個一個來按順序處理)
  • 非阻塞:I/O時進程立即返回,進程不等待I/O完成, 繼續往下執行  (就是大家先來領個號,立刻返回,等處理好後把結果通知給你)           

RESTful API

        RESTful API是一套協議來規範多種形式的前端和同一個後臺的交互方式。RESTful API由後臺也就SERVER來提供給前端來調用。前端調用API向後臺發起HTTP請求,後臺響應請求將處理結果反饋給前端。

單線程

        Node可以在不新增額外線程的情況下,依然可以對任務進行併發處理。

事件驅動

        Node.js 使用事件驅動模型,當web server接收到請求,就把它關閉然後進行處理,然後去服務下一個web請求。當這個請求完成,它被放回處理隊列,當到達隊列開頭,這個結果被返回給用戶。這個模型非常高效可擴展性非常強,因爲web server一直接受請求而不等待任何讀寫操作。(這也被稱之爲非阻塞式IO或者事件驅動IO)在事件驅動模型中,會生成一個主循環來監聽事件,當檢測到事件時觸發回調函數。

 

Node.js 安裝配置

本章節我們將向大家介紹在 Windows 和 Linux 上安裝 Node.js 的方法。

Node.js 安裝包及源碼下載地址爲:https://nodejs.org/en/download/

Node.js 歷史版本下載地址:https://nodejs.org/dist/

安裝

選擇要安裝的版本進行安裝

windown安裝

安裝完成 查看node版本 命令  node  --version

 

步驟一:引入 required 模塊

 

引入 required 模塊

我們使用 require 指令來載入 http 模塊,並將實例化的 HTTP 賦值給變量 http

var http = require("http");

在 Node.js 中我們需要引入各種模塊並實例化來運用,通常都是通過 require 指令來引入

步驟二、創建服務器

創建服務器

接下來我們使用 http.createServer() 方法創建服務器,並使用 listen 方法綁定 8888 端口。 函數通過 request, response 參數來接收和響應數據。
實例如下,在你項目的根目錄下創建一個叫 test.js 的文件,並寫入以下代碼:

var http = require('http');
http.createServer(function (request, response) {
    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.end('Hello World\n');
}).listen(8888);
console.log('Server running at http://127.0.0.1:8888/');

接收請求與響應請求

以上代碼我們完成了一個可以工作的 HTTP 服務器。進入test.js所在目錄,使用 node 命令執行以上的代碼

接下來,打開瀏覽器訪問 http://127.0.0.1:8888/,你會看到一個寫着 “Hello World”的網頁。

 

REPL 命令

  • ctrl + c - 退出當前終端,按下兩次 ctrl + c 鍵就能退出 REPL。
  • ctrl + c 按下兩次 - 退出 Node REPL。
  • ctrl + d - 退出 Node REPL.
  • 向上/向下 鍵 - 查看輸入的歷史命令
  • tab 鍵 - 列出當前命令
  • .help - 列出使用命令
  • .break - 退出多行表達式
  • .clear - 退出多行表達式
  • .save filename - 保存當前的 Node REPL 會話到指定文件
  • .load filename - 載入當前 Node REPL 會話的文件內容。

什麼是 Node.js 模塊系統?

Node.js 模塊可以分爲兩大類,一類是核心模塊,另一類是文件模塊。

核心模塊

直接通過require獲取核心模塊,例如:

var fs = require('fs')

核心模塊擁有最高的加載優先級,如果有模塊與核心模塊命名衝突,Node.js 總是會加載核心模塊。

 

 

 

 

 

exports 和 require

exports 和 require

Node.js 提供了 exports 和 require 兩個對象,其中 exports 是模塊公開的接口,require 用於從外部獲取一個模塊的接口,即所獲取模塊的 exports 對象,接下來我們用個實例來解釋

1.創建個hello.js文件代碼如下

exports.world = function() {

console.log('Hello World');

}

2.創建文件test.js引入模塊 hello.js

var hello = require('./hello');

hello.world();

require(‘./hello’) 引入了當前目錄下的 hello.js 文件(./ 爲當前目錄,node.js 默認後綴爲 js)

3.執行test.js文件輸出 ‘Hello World’;

在 test.js 中通過 require(‘./hello’) 加載這個模塊,然後就可以直接訪 問 hello.js 中 exports 對象的成員函數了。

有時候只是想把一個對象封裝到模塊中第一步在hello.js封裝對象

function Hello() {

var name;

this.setName = function(thyName) {

name = thyName;

};

this.sayHello = function() {

console.log('Hello ' + name);

};

};

module.exports = Hello;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章