Node.js 是一個基于 Chrome V8 引擎的 JavaScript 運行時環(huán)境五垮。是一個事件驅(qū)動 I/O 服務(wù)端 JavaScript 環(huán)境,基于 Google 的 V8 引擎涕癣,V8 引擎執(zhí)行 Javascript 的速度非常快,性能非常好忧勿。
支持 windows垫言、linux贰剥、macOS、Docker 鏡像筷频。
Node.js 與瀏覽器的區(qū)別
1.在瀏覽器中前痘,大多數(shù)時候做的是與 DOM 或其??他 Web 平臺 API(例如 Cookies)進行交互。 當(dāng)然担忧,那些在 Node.js 中是不存在的芹缔。 沒有瀏覽器提供的 document
、 window
瓶盛、以及所有其他的對象乖菱。
2.在瀏覽器中,不存在 Node.js 通過其模塊提供的 API蓬网,例如文件系統(tǒng)訪問功能窒所。
3.在 Node.js 中, 可以控制運行環(huán)境 帆锋。 除非構(gòu)建的是任何人都可以在任何地方部署的開源應(yīng)用程序吵取,否則你能知道會在哪個版本的 Node.js 上運行該應(yīng)用程序。 與瀏覽器環(huán)境(你無法選擇訪客會使用的瀏覽器)相比起來锯厢,這非常方便皮官。
4.Node.js 使用 CommonJS 模塊系統(tǒng),而在瀏覽器中实辑,則還正在實現(xiàn) ES 模塊標(biāo)準捺氢。
在實踐中,這意味著在 Node.js 中使用 require()
剪撬,而在瀏覽器中則使用 import
摄乒。
當(dāng)然,如果你不想看上面那些內(nèi)容残黑,我們可以看下面的表格
Node 可以做什么馍佑?
web 服務(wù)器
啟動一個 web 服務(wù)器
// 依賴 http 模塊創(chuàng)建 web 服務(wù)器
const http = require('http')
// 設(shè)置監(jiān)聽的端口
const hostname = '127.0.0.1'
const port = 3000
// 創(chuàng)建一個 web 服務(wù)
const server = http.createServer((req, res) => {
res.statusCode = 200
// 注意一下編碼問題喲
res.setHeader('Content-Type', 'text/plain; charset=UTF-8')
res.end('你好,歡迎訪問 https://www.lilnong.top')
})
// 使用上面設(shè)置好的端口監(jiān)聽
server.listen(port, hostname, () => {
console.log(`服務(wù)器運行在 http://${hostname}:${port}/`)
})
腳本程序
獲取當(dāng)前目錄下面的所有 json 文件梨水,進行處理 node app.js
// app.js 文件
const fs = require("fs");
const path = require('path');
const readDir = (entry, paths = []) => {
const dirInfo = fs.readdirSync(entry);
dirInfo.forEach(item=>{
const location = path.join(entry,item);
const info = fs.statSync(location);
if(info.isDirectory()){
console.log(`dir:${location}`);
readDir(location, [item]);
}else{
if(/.json$/.test(location)){
// readFile(location, paths)
}
}
})
}
// console.log('__dirname', __dirname)
readDir(__dirname);
交互式使用
上面的代碼我們可以直接在 cmd 中使用