Node.js 筆記

Node.js 簡介

Nodejs 是什么?

Node.js 不是一種獨(dú)立的語言,也不是一個 JavaScript 框架,更不是瀏覽器的庫。Node.js 是一個讓 JavaScript 運(yùn)行在服務(wù)端的開發(fā)平臺,它讓 JavaScript 跟 PHP 、Python 等腳本語言一樣可以作為后端語言。

Node.js 能干嘛

Node.js 適合那種高并發(fā)的應(yīng)用場景,比如 即時聊天程序。因為 Node.js 內(nèi)置了 HTTP 服務(wù)器的支持。也就是說不用像 PHP 等其他后端語言一樣,還要通過 Apache 服務(wù)器等,直接幾行代碼,在V8引擎上一跑,一個簡單的服務(wù)器就搭建好了。

異步式 I/O 與事件驅(qū)動

這是 Node.js 最大的特性了。傳統(tǒng)架構(gòu)應(yīng)對高并發(fā)的方案是多線程并行。而 Node.js 使用的是單線程模型,它在執(zhí)行過程中有一個事件隊列,當(dāng)程序執(zhí)行到耗時長的 I/O 請求時,不會說一直等待,而是執(zhí)行其他操作,等該 I/O 請求完成后,利用事件循環(huán)再次調(diào)出來執(zhí)行。

舉個例子

let fs = require('fs')
fs.readFile('./Git.md', 'utf-8', (err, data) => {
        if (err) {
            throw err
        }
        console.log(data)
    }
)
console.log('hhh')

執(zhí)行結(jié)果是,先看到打印的 hhh ,然后才是打印出讀取文件 Git.md 的內(nèi)容。這是因為 fs.readFile() 它是異步執(zhí)行的。

Node.js 入門

  • hello world

    • 新建一個文件例如 hello.js ,然后寫上 console.log('hello node.js') 打開命令行工具,執(zhí)行 node hello.js 注意文件路徑要對得上。
    • 也可以直接在命令行里運(yùn)行代碼,只需執(zhí)行 node 進(jìn)入即可 Ctrl + C 就是退出。
    hello node.js
  • 搭建 HTTP 服務(wù)器

    const http = require('http')
    const myBrowser = require('child_process')
    const PORT = 3000
    
    let server = http.createServer
    
    server.on('request', (req, res) => {
        res.writeHead(200, {
            'Content-Type': 'text/html'
        })
        res.write('<h1>Hello Node.js</h1>');
        res.end();
    })
    
    server.listen(PORT)
    console.log('http server listen to port ' + PORT)
    
    myBrowser.exec('start http://127.0.0.1:' + PORT)
    
    http服務(wù)器
  • 模塊的創(chuàng)建和引入

      Node.js 的模塊是參考 CommonJS 規(guī)范的。
    
    • exports
    // hello.js 文件
    module.exports = function (){
        console.log('hello CommonJS');
    }
    
    • require
    let hello = require('./hello');
    hello(); //  打印出 hello CommonJS
    
    image.png
    • 單次加載

      第一次加載后會放到緩存,再次加載只是直接從緩存里拿來用而已。

參考資料

  • Node.js 開發(fā)指南
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 個人入門學(xué)習(xí)用筆記、不過多作為參考依據(jù)。如有錯誤歡迎斧正 目錄 簡書好像不支持錨點、復(fù)制搜索(反正也是寫給我自己看...
    kirito_song閱讀 2,495評論 1 37
  • Node.js是目前非常火熱的技術(shù),但是它的誕生經(jīng)歷卻很奇特。 眾所周知,在Netscape設(shè)計出JavaScri...
    w_zhuan閱讀 3,639評論 2 41
  • node.js介紹 簡單的說node.js就是運(yùn)行在服務(wù)器端的JavaScript。 node.js是一個基于Ch...
    清心挽風(fēng)閱讀 519評論 0 2
  • Express 簡介 Express 是一個簡潔而靈活的 node.js Web應(yīng)用框架, 提供了一系列強(qiáng)大特性幫...
    保川閱讀 2,038評論 0 24
  • 一心尊六祖,循跡訪禪聲。 羊城結(jié)筴地,南華供金身。 千里探云浮,人圣出新興。 清心無一物,見性燃慧明。
    幸福禪閱讀 289評論 0 1