十分钟带你认识Node.js
Node.js是什么
Node.js? 是一個基于 Chrome V8 引擎 的 JavaScript 運行時
上面的概念中有兩個特殊的名詞,解釋如下:
● chrome V8引擎: chrome瀏覽器用來解析和執行js代碼的工具;
● 運行時:理解為一個容器,用來運行代碼的環境;
所以,對Node.js更通俗的解釋是:一個用chrome瀏覽器V8引擎來跑JS代碼的環境。
● 瀏覽器是javascript的前端運行環境;
● Node.js是javascript的后端運行環境;
Nodejs的理解
● Node全名是Node.js(也叫Node, nodejs, node.js),但它不是一個js文件,而是一個軟件
● Node.js是一個基于Chrome V8引擎的javascript的運行環境,在這個環境中可以執行js代碼
● Node.js提供了大量的內置模塊及豐富的第三方模塊,能夠讓我們完成文件讀寫、Web服務器、操作數據庫等功能
學習Node.js的意義
● 在Node環境下,寫js代碼實現后端的功能(web服務器,寫接口,讀寫數據庫…)
● 了解后端程序員的工作,增加職場競爭力
Node.js的學習內容
它只是一個環境,不是一門語言(不需要學習新語言),我們要學習它的兩個內容: 模塊系統, npm包管理工具。
**模塊系統。能用不同的模塊來完成不同的功能,例如:創建web服務器,寫接口,連接操作數據庫
NPM包管理工具。通過npm來管理我們的需要的第三方包,為后續學習框架打下基礎**
下載
版本說明
● LTS: 長期穩定版(Long Term Support))。 項目開發建議使用長期穩定版
● Current: 最新版。最新版包含了一些新功能,如果想學習最新的功能,則可以使用該版本。最新版可能會有一些未知的bug。
測試是否安裝成功
在終端里面打開,小黑窗
打開任意一個小黑窗,輸入node -v能夠看到Nodejs版本號即為安裝成功。
**
打開小黒窗的4種方式
**
方法1:cmd窗口(window+R, —>運行–>錄入cmd,回車)
方法2:在資源管理器中,打開任意目錄,直接在地址欄中寫入 cmd,并回車
方法3:powershell(window10操作系統)
在資源管理器中按下shift,同時點擊鼠標右鍵,可以選擇在此處打開powershell/命令行窗口。
方法4: vscode中的右鍵,在命令行中運行
命令及鍵盤按鍵
node 空格 某個js文件 # 調用 node 程序,運行某個js文件
clear 或者 cls # 清空界面
ls/dir # 查看列表(list)
cd 目錄名 # 進入到目錄中去
cd … # 返回上一級目錄
cd \ # 直接回到根目錄
Ctrl+C # 停止 Node 程序
輸入部分文件名后按下 Tab 鍵 // 補全文件名 或 目錄名, 多次tab會進行切換
↑ ↓ 上下箭頭 # 切換歷史輸入
復制粘貼
在小黑窗中復制內容:選中內容,再點鼠標右鍵
把粘貼板中的內容復制到小黑窗: 點鼠標右鍵
Node.js和瀏覽器端的區別
在瀏覽器端
js由三部分組成:ECMAScript + BOM + DOM
在nodejs端
有ECMAScript + 內置模塊(fs, http, path,…)。在nodejs中是沒有BOM、DOM、window,但使用ECMAScript是通用的
相同點:
不同點:
內部的模塊分為: 核心模塊(自帶) 自定義模塊 (自己寫) 第三封方模塊(其他人寫)
**
fs對象的方法
**
// 引入模塊
const fs = require(‘fs’);
// 可以使用var、let,但是建議使用const,因為我們不希望它被改變。
// 名字不必大寫成FS,一般也就叫fs這個名字。
fs.各種API(實參)
fs.readFileSync( ’ 這里面是文件的路徑’, ‘utf8’, )
這個是同步的讀取文件
fs.writeFileSync( ’ 這里面是文件的路徑’, ‘內容’ , ‘utf8’, )
這個是同步的書寫內容 如果沒有文件
fs.writeFileSync(pathName, content, option);
// 參數1: 要寫入的文件路徑 — 相對路徑和絕對路徑均可,推薦使用絕對路徑
// 參數2: 要寫入文件的內容
// 參數3: 配置項,設置寫入的字符集,默認utf-8
在nodejs, 我們提到的相對/絕對路徑理解如下:
● 絕對路徑: 從磁盤根目錄開始到指定文件的路徑。
● 相對路徑:是以某個文件的位置為起點,相對于這個位置來找另一個文件。
__dirname __filename 獲取絕對路徑
nodejs中提供了兩個全局變量來獲取獲取絕對路徑:
● __filename:獲取當前被執行的文件的絕對路徑
● __dirname:獲取當前被執行的文件的文件夾所處的絕對路徑
全局變量的含義是:
● 變量:它們的值是變化的。在不同的文件中值就不同,因為文件的路徑也不同嘛。
● 全局:在任意地方都可以直接使用。
path模塊
作用
作用是用來處理路徑問題:拼接,分析,取后綴名等等。
● 官網文檔地址
● 是node中的核心模塊之一
使用步驟
const path = require(‘path’)
調用API即可
常用的api
● path.basename() :此方法返回 path 的最后一部分。一般可用來獲取路徑中的文件名。
● path.join() :路徑拼接。
● path.parse(pathurl) :把一個路徑轉成一個對象
示例
path.basename(‘/foo/bar/baz/asdf/quux.html’);// 返回: ‘quux.html’
path.basename(‘/foo/bar/baz/asdf/quux.html’, ‘.html’);// 返回: ‘quux’
path.dirname(‘/foo/bar/baz/asdf/quux’);// 返回: ‘/foo/bar/baz/asdf’
path.extname(‘index.html’);// 返回: ‘.html’
注意:path模塊并不考慮其中地址是否真的存在,只是單純調用方法,獲取結果。
使用path模塊解決文件讀寫中的路徑拼寫
/拼接html5.jpg的絕對路徑
console.log(__dirname)
const fs = require(‘fs’)
const path = require(‘path’)
const filePath = path.join(__dirname, ‘html5.jpg’)
const filePath = __dirname + ‘\html5.jpg’
走一步,看一步
console.log(filePath)
fs.readFile(filePath,function(err, data) {
if(err) {
console.log(err)
return
}
console.log(data)
})
附:path模塊常用方法列表
方法 作用
path.basename(path[, ext]) 獲取返回 path 的最后一部分(文件名)
path.dirname(path) 返回目錄名
path.extname(path) 返回路徑中文件的擴展名(包含.)
path.format(pathObject) 將一個對象格式化為一個路徑字符串
path.join([…paths]) 拼接路徑
path.parse(path) 把路徑字符串解析成對象的格式
path.resolve([…paths]) 基于當前工作目錄拼接路徑
附:fs模塊中的常用方法
API 作用 備注
fs.access(path, callback) 判斷路徑是否存在
fs.appendFile(file, data, callback) 向文件中追加內容
fs.copyFile(src, callback) 復制文件
fs.mkdir(path, callback) 創建目錄
fs.readDir(path, callback) 讀取目錄列表
fs.rename(oldPath, newPath, callback) 重命名文件/目錄
fs.rmdir(path, callback) 刪除目錄 只能刪除空目錄
fs.stat(path, callback) 獲取文件/目錄信息
fs.unlink(path, callback) 刪除文件
fs.watch(filename[, options][, listener]) 監視文件/目錄
fs.watchFile(filename[, options], listener) 監視文件
fs.existsSync(absolutePath) 判斷路徑是否存在
總結
以上是生活随笔為你收集整理的十分钟带你认识Node.js的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020年度最值得关注论文TOP10
- 下一篇: kernel更改开机画面