天天看點

nodejs基礎知識點

var http = require("http");載入 http 子產品,并将執行個體化的 HTTP 指派給變量 http

使用 http.createServer() 方法建立伺服器,并使用 listen 方法綁定 8888 端口

函數通過 request, response 參數來接收和響應資料

可以使用下劃線 _ 擷取上一個的結果

ctrl + d 退出 Node 指令

.clear 退出多行表達式

Node.js 異步程式設計的直接展現就是回調.回調函數一般作為函數的最後一個參數出現.

非阻塞調用,不需要等待檔案讀取完,不需要按順序的,這樣就可以在讀取檔案時同時執行接下來的代碼,大大提高了程式的性能。

非阻塞式IO或者事件驅動IO,webserver一直接受請求而不等待任何讀寫操作。

var events = require('events');引入 events 子產品

var eventEmitter = new events.EventEmitter();建立 eventEmitter 對象

events 子產品隻提供了一個對象: events.EventEmitter。

EventEmitter 的核心就是事件觸發與事件監聽器功能的封裝。

on(event, listener),on 函數用于綁定事件函數。接受一個字元串 event 和一個回調函數。

emit(event, [arg1], [arg2], [...]) 按參數的順序執行每個監聽器

emit 屬性用于觸發一個事件

event.emit('some_event');   向 event 對象發送 some_event事件

once(event, listener)監聽器最多隻會觸發一次

listenerCount(emitter, event)傳回指定事件的監聽器數量。

寫入緩沖區 len = buf.write("www.runoob.com");

從緩沖區讀取資料 buf.toString('ascii'))

将 Buffer 轉換為 JSON 對象buf.toJSON()

緩沖區合并Buffer.concat([buffer1,buffer2])

緩沖區比較buffer1.compare(buffer2)

拷貝緩沖區buf2.copy(buf1, 2);//将 buf2 插入到 buf1 指定位置上 從0開始

緩沖區裁剪buffer1.slice(0,2)   實際是前兩個存在

緩沖區長度buffer.length

Stream 是一個抽象接口

建立可讀流var readerStream = fs.createReadStream('input.txt');

寫入流var writerStream = fs.createWriteStream('output.txt');

檢視寫入的檔案的内容 cat 檔案名

讀取一個檔案内容并将内容寫入到另外一個檔案中 readerStream.pipe(writerStream);

建立子產品,一個 Node.js 檔案就是一個子產品

Node.js 提供了 exports 和 require 兩個對象,exports 是子產品公開的接口,require 用于從外部擷取一個子產品的接口 

var hello = require('./hello');  通過 require('./hello') 加載這個hello.js檔案,就可以通路exports對象的成員函數

exports.world  把world當成通路接口 

module.exports = Hello 在外部引用該子產品時,其接口對象就是要輸出的 Hello 對象本身,而不是原先的 exports。

如果要對外暴露屬性或方法,就用 exports 就行,要暴露對象(類似class,包含了很多屬性和方法),就用 module.exports。

匿名函數 不用給這個函數起名字,把一個函數作為變量傳遞

Node.js 中的全局對象是 global

不可能在最外層定義變量,因為所有使用者代碼都是屬于目前子產品的,

永遠使用 var 定義變量以避免引入全局變量,因為全局變量會污染命名空間

console.log( __filename );表示目前正在執行的腳本的檔案名

console.log( __dirname );表示目前執行腳本所在的目錄。

setTimeout(cb, ms) 全局函數在指定的毫秒(ms)數後執行指定函數(cb)。:setTimeout() 隻執行一次指定函數。

setInterval(cb, ms)同上,但是 會不停地調用函數,直到 clearInterval() 被調用或視窗被關閉。

console 用于提供控制台标準輸出

console.log 接收若幹 個參數,如果隻有一個參數,則輸出這個參數的字元串形式。

如果有多個參數,則 以類似于C 語言 printf() 指令的格式輸出。

var fs = require("fs")導入檔案系統子產品(fs)

異步的方法函數最後一個參數為回調函數,回調函數的第一個參數包含了錯誤資訊(error)。比起同步,異步方法性能更高,速度更快,而且沒有阻塞。

打開檔案fs.open('input.txt', 'r+', function(err, fd) 

'input.txt'檔案的路徑。    r+以讀寫模式打開檔案。如果檔案不存在抛出異常。 回調函數,

擷取檔案資訊

fs.stat(path, callback)   檔案路徑    回調函數

寫入檔案fs.writeFile('input.txt', '我是通 過fs.writeFile 寫入檔案的内容',  function(err)

讀取檔案fs.read(fd, buf, 0, buf.length, 0, function(err, bytes)

關閉檔案fs.close(fd, function(err)

截取檔案  删除檔案 建立目錄fs.mkdir(path[, options], callback)  讀取/删除目錄

擷取GET請求内容

URL是完整的請求路徑,包括了?後面的部分,是以你可以手動解析後面的内容作為GET請求的參數。

可以使用 url.parse 方法來解析 URL 中的參數

通過 POST 送出并輸出資料

Express 是一個簡潔而靈活的 node.js Web應用架構,可以快速地搭建一個完整功能的網站

靜态檔案

繼續閱讀