文章目錄
- 前言
- 一、Node的全域物件與函式
- 1.全域物件
- 2.全域函式
- 二、node.js內置模塊
- 1.console
- 2.process
- 3.path
- 4.fs
- 5.http
- 三、自定義模塊
- 四、第三方模塊
- 總結
前言
Node.js不是一種編程語言,不是一種框架,而是一種運行環境,是基于Chrome V8引擎的JavaScript運行時環境,接下來學習一下node.js的基礎,

一、Node的全域物件與函式
1.全域物件
(1)在互動模式下,宣告的變數和函式都屬于global,
(2)在腳本模式下,宣告的變數和函式都不屬于global,
2.全域函式
JavaScript語言提供的全域函式依然可以使用,另外還有一些新的函式,例如:setImmediate()
var num = 3.1415
console.log(parseInt(num))
var timer = setTimeout(() => {
console.log(1)
},2000)
// clearTimeout(timer)
//同步異步 主程式結束后 事件佇列前執行
setImmediate(() => {
console.log(2)
})
//主程式結束后就執行
process.nextTick(() => {
console.log(4)
})
執行結果:

二、node.js內置模塊

1.console
console.log(1)
var obj = {
name: "tom",
age: 18
}
console.log(obj)
console.table(obj)
//計時函式
console.time('for')
for (let i = 0 ; i < 1000000 ; i++ ) {
}
console.timeEnd('for')
console.time('while')
var i = 0
while (i < 1000000) {
i++
}
console.timeEnd('while')
運行結果:

2.process
process是node.js的行程控制模塊,是全域變數,不需要用require引入,
其他操作可以去官網查詢檔案:點擊查詢process其他操作
console.log(process.pid)
運行結果:

3.path
提供了有關路徑操作的函式,使用path之前需要require引入關鍵字進行引入,
//獲取當前路徑的幾種方式
console.log(process.cwd())
console.log(__dirname)
//獲取完整路徑的方式
console.log(__filename)
//在使用path之前,先引入
const path = require("path")
//獲取路徑中的擴展名方法
console.log(path.extname(__filename))
//獲取路徑中的目錄
console.log(path.dirname(__filename))
//獲取路徑中的檔案名
console.log(path.basename(__filename))
const t = path.join(__dirname,"..")
console.log(t)
const s = path.join("D:/","a","b","c",".js")
console.log(s)
4.fs
目錄操作:
mkdir(“目錄路徑”,回呼函式)
rmdir(“目錄路徑”,回呼函式)
rename(舊目錄名,新目錄名,“回呼函式”)
readdir(“目錄路徑”,回呼函式)
檔案操作:
writeFlie(“檔案路徑”,“要寫入的內容”,回呼函式)
readFlie(“檔案路徑”,回呼函式)
unlink(“檔案路徑”,回呼函式)
appendFlie(“檔案路徑”,“要追加的內容”,回呼函式)
檔案是否存在:
existsSync(檔案路徑)
檔案的復制和壓縮案例
//引入fs 和 path
const fs = require("fs")
const path = require("path")
//創建一個即將復制的檔案名
const dist = path.join(__dirname,"dist")
//復制 先讀取后寫入
//讀取檔案內容
fs.readFile('./src/style.css', (err, data) => {
if (err) {
throw err
} else {
// 確保 dist 目錄存在
if (!fs.existsSync(dist)) {
fs.mkdirSync(dist)
}
//壓縮讀取到的檔案內容 /*注釋的內容*/
const compress = data.toString().replace(/\s+/g , '').replace(/\/\*{1,2}[\s\S]*\*\//g , '')
// 將讀到的內容,寫入目標檔案
fs.writeFile(dist+'/style.min.css', compress, (err) => {
if (err) throw err
console.log('復制成功')
})
}
})
5.http
//引入http
const http = require("http")
//創建服務器
const server = http.createServer((req, res) => {
res.statusCode = 200
res.setHeader('Content-Type', 'text/plain; charset=utf-8')
res.end('你好:Node.js')
})
//發布web服務
const port = 3000
const host = 'localhost'
// 在瀏覽器中訪問 http://localhost:3000 然后能看到效果
server.listen(port, host, () => {
console.log(`服務器運行在 http://${host}:${port}`)
})
效果展示

三、自定義模塊
Node.js 中每個單獨的.js檔案,就是一個模塊,每個模塊中都有一個module變數,其代表當前模塊,module的exports屬性是對外的介面,
只有匯出(module.exports)的屬性或方法才能被外部呼叫,未匯出的內容是模塊私有,不能被外部訪問,使用時,通過require 引入,
接下來寫一個案例:
const PI = Math.PI
//圓的周長
function c(r) {
return 2 * PI * r
}
//圓的面積
function s(r) {
return PI * Math.pow(r,2)
}
//匯出
module.exports = {
c,
s
}
//在這里呼叫app.js
//首先引入檔案
const circle = require("./07-circle")
const r = 5
console.log("周長:",circle.c(r))
console.log("面積:",circle.s(r))
運行結果:

四、第三方模塊
第三方模塊使用網站
npm鏡像源修改,將國外的修改成國內的,



總結
這部分是node.js基礎,后面會擴充這部分的內容,先掌握node.js的基礎,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/291668.html
標籤:其他
