- Node.js 是什么
- JavaScript 運(yùn)行時(shí)
- 既不是語(yǔ)言,也不是框架,它是一個(gè)平臺(tái)(執(zhí)行環(huán)境)
- Node.js能做什么
- Web服務(wù)器后臺(tái)
- 命令行工具
- Node.js 中的 JavaScript
- 沒(méi)有 BOM、DOM
- EcmaScript 基本的 JavaScript 語(yǔ)言部分
- 在 Node 中為 JavaScript 提供了一些服務(wù)器級(jí)別的 API
- 文件操作的能力
- http 服務(wù)的能力
安裝

- 模塊系統(tǒng)
- 在 Node 中沒(méi)有全局作用域的概念
- 在 Node 中,只能通過(guò) require 方法來(lái)加載執(zhí)行多個(gè) JavaScript 腳本文件
- require 加載只能是執(zhí)行其中的代碼,文件與文件之間由于是模塊作用域,所以不會(huì)有污染的問(wèn)題
- 模塊完全是封閉的
- 外部無(wú)法訪問(wèn)內(nèi)部
- 內(nèi)部也無(wú)法訪問(wèn)外部
- 模塊作用域固然帶來(lái)了一些好處,可以加載執(zhí)行多個(gè)文件,可以完全避免變量命名沖突污染的問(wèn)題
- 但是某些情況下,模塊與模塊是需要進(jìn)行通信的
- 在每個(gè)模塊中,都提供了一個(gè)對(duì)象:
exports - 該對(duì)象默認(rèn)是一個(gè)空對(duì)象
- 你要做的就是把需要被外部訪問(wèn)使用的成員手動(dòng)的掛載到
exports接口對(duì)象中 - 然后誰(shuí)來(lái)
require這個(gè)模塊,誰(shuí)就可以得到模塊內(nèi)部的exports接口對(duì)象 - 還有其它的一些規(guī)則,具體后面講,以及如何在項(xiàng)目中去使用這種編程方式,會(huì)通過(guò)后面的案例來(lái)處理
- 核心模塊
- 核心模塊是由 Node 提供的一個(gè)個(gè)的具名的模塊,它們都有自己特殊的名稱標(biāo)識(shí),例如
- fs 文件操作模塊
- http 網(wǎng)絡(luò)服務(wù)構(gòu)建模塊
- os 操作系統(tǒng)信息模塊
- path 路徑處理模塊
- 。。。。
- 所有核心模塊在使用的時(shí)候都必須手動(dòng)的先使用
require方法來(lái)加載,然后才可以使用,例如:var fs = require('fs')
- 核心模塊是由 Node 提供的一個(gè)個(gè)的具名的模塊,它們都有自己特殊的名稱標(biāo)識(shí),例如
- http
- require
- 端口號(hào)
- ip 地址定位計(jì)算機(jī)
- 端口號(hào)定位具體的應(yīng)用程序
- Content-Type
- 服務(wù)器最好把每次響應(yīng)的數(shù)據(jù)是什么內(nèi)容類型都告訴客戶端,而且要正確的告訴
- 不同的資源對(duì)應(yīng)的 Content-Type 是不一樣,具體參照:http://tool.oschina.net/commons
- 對(duì)于文本類型的數(shù)據(jù),最好都加上編碼,目的是為了防止中文解析亂碼問(wèn)題
- 通過(guò)網(wǎng)絡(luò)發(fā)送文件
- 發(fā)送的并不是文件,本質(zhì)上來(lái)講發(fā)送是文件的內(nèi)容
-
當(dāng)瀏覽器收到服務(wù)器響應(yīng)內(nèi)容之后,就會(huì)根據(jù)你的 Content-Type 進(jìn)行對(duì)應(yīng)的解析處理
node.js基礎(chǔ).png
