概述:瞭解Node.js,熟悉內建模組:fs模組、path模組、http模組
執行環境是指程式碼正常執行所需的必要環境
也許你聽到的後端開發語言大多是:Java、Python、PHP等,但其實Js也能做後端開發,雖然效能不如他們,但對於前端開發人員十分友好。
如果我們把Js程式碼執行瀏覽器中,就可以進行前端開發;如果執行到Node.js中,就可以實現後端開發。
Node.js是一個基於Chrome V8引擎的JavaScript執行環境
Node.js官網:http://nodejs.org/zh-cn/
對於Node.js執行環境=V8引擎+內建API
很多框架和工具,都基於Node的基礎功能,學會Node.js,可以「幫助前端程式設計師勝任更多工作」:
JavaScript基礎語法——Node.js內建API模組(fs、path、http等)——第三方API模組(express、koa、egg、mysql等)
官網下載安裝
區分LST版本和Current版本:
檢視已安裝的版本號
//開啟終端(Terminal)
ndoe -v
開啟終端
輸入node要執行的Js檔案路徑
F:\xxx\xxx\Node.js>node index.js
終端中的快捷鍵:
fs模組是Node.js官方提供的用來操作檔案的模組,它提供了一系列的方法和屬性,用來滿足使用者對檔案的操作需求。
fs.readFile()方法,讀取檔案內容
fs.writeFile()方法,寫入內容
const fs=require('fs')
fs.readFile(path[,options],callback)
const fs = require('fs');
fs.readFile('./files/1.txt', 'utf8', function (err, dataStr) {
console.log(err)
console.log("------------------")
console.log(dataStr)
})
fs.writeFile(file,data[,options],callback)
const fs = require('fs');
fs.writeFile('./files/1.txt', 'Hello World!', function (err) {
console.log(err)
})
在使用fs模組操作檔案時,如果提供的操作路徑是以./或../開頭的相對路徑,很容易出現路徑動態拼接錯誤問題。
原因:程式碼執行時,會以node命令時所處的目錄,動態拼接被操作檔案的完整路徑。
解決:直接提供完整的絕對路徑(移植性差,不利於維護)。
fs.writeFile(__dirname+'/files/2.txt', newStr, function (err) {
if (err) {
return console.log("檔案寫入失敗!+", err.message)
}
console.log("檔案寫入成功!")
})
path模組是Node.js官方提供的用來處理路徑的模組,它提供了一系列的方法和屬性,用來滿足使用者對路徑的處理需求。
path.join()方法,將多個路徑片段拼接成一個完整的路徑字串
path.basename()方法,將路徑中的檔名解析出來
const path=require('path')
path.join([...paths])
const path = require('path')
const pathStr = path.join('/a', '/b/c', '../', '/d', 'e') //../抵消一層
console.log(pathStr)//\a\b\d\e
path.basename(path[,ext])
const path = require('path')
const fpath = './files/1.txt'
const fullname = path.basename(fpath)
console.log(fullname)//1.txt
const nameWithoutExt = path.basename(fpath, '.txt')
console.log(nameWithoutExt)//1
path.extname(path)
在網路節點中,負責消費資源的電腦,叫做使用者端;負責對外提供網路資源的電腦,叫做伺服器。
http模組是Node.js官方提供的用來建立Web伺服器的模組的模組,通過提供的http.createServer()方法,就能把一臺普通的電腦,變成一臺Web伺服器,從而對外提供Wbe資源。
const http=require('http')
伺服器和普通電腦的區別在於:伺服器上安裝了Web伺服器軟體,例如IIS、Apache等
再Node.js中,我們不需要使用IIS、Apache等第三方web伺服器軟體。因為我們可以基於Node.js的http模組,通過幾行程式碼,手寫一個伺服器軟體,從而對外提供web服務。
const http = require('http')
const server = http.createServer()
server.on('request', function (req, res) {
console.log("Someone visit our web server")
})
server.listen(8082, function () {
console.log("Server running at http://127.0.0.1:8082")
})
存取與使用者端相關的資料或屬性
const http = require('http')
const server = http.createServer()
server.on('request', req=>{
const url=req.url//使用者端請求的url地址
const method=req.method//使用者端請求的method型別
})
server.listen(8082, function () {
console.log("Server running at http://127.0.0.1:8082")
})
存取與伺服器相關的資料或屬性
const http = require('http')
const server = http.createServer()
server.on('request', (req, res) => {
const url = req.url//使用者端請求的url地址
const method = req.method//使用者端請求的method型別
//呼叫res.end向用戶端響應內容
res.end("Hello World!")
})
server.listen(8082, function () {
console.log("Server running at http://127.0.0.1:8082")
})
res.setHeader('Content-Type','text/html; charset=utf-8')