V-HM Node基礎1
Node.js基礎-終端基本使用
配置環境變量(可執行文件路徑)之後,就可以在終端快捷執行命令;
終端文件操作常用命令:
md:創建目錄;
rmdir(rd):刪除目錄,目錄內沒有文檔
rd /s/q abc:刪除子目錄(所有的 無提示)
del:刪除文件
rm 文件名:刪除文件
cat 文件名:查看文件內容
cat > 文件名:向文件中寫入內容
echo on a.txt:創建文件
echo on > a.txt:創建文件
Node.js基礎-環境安裝配置
使用的Mac系統,安裝包下載地址:https://nodejs.org/
(base)$ node -v
v12.16.3
使用nvm可以進行多版本安裝包的管理:
- 爲了開發方便,提前調試新版本;
- window下多版本安裝方式:
- 卸載已有的Node.js
- 下載nvm(nvm-windows)
- 在dev目錄中創建兩個子目錄nvm和nodejs
- 並且把nvm包解壓進nvm目錄中
- 在install.cmd文件上面右鍵選擇“以管理員身份運行”
- 打開cmd窗口直接回車生成settings.txt文件,修改配置信息爲兩個子目錄nvm和nodejs兩個子目錄路徑
- 配置nvm和Node.js環境變量:
- NVM_HOME: C:\dev\nvm
- NVM_SYMLINK: C:\dev\nodejs
- 把配置好的兩個環境變量加到Path中;
常用nvm命令:
- nvm list //查看已下載的nodejs包
- nvm install latest //安裝最新版本nodejs
- nvm install 10.0.2 //安裝多版本 指定版本
- nvm use 10.0.2 //切換指定版本的nodejs
- node -v //查看當前使用的nodejs版本
Node.js基礎-全局成員概述
hello world
與瀏覽器提供的node環境使用類似:
(base) flowers-MacBook-Pro:~ huaqiang$ node
Welcome to Node.js v12.16.3.
Type ".help" for more information.
> console.log('hello world')
hello world
命令行方式REPL:read-eval-print-loop(讀取 執行 打印 循環)
終端特有的:
_
:表示最後一次執行語句的結果;.exit
:執行該命令,可以退出REPL系統;
執行js文件
將代碼寫到js文件中,執行相應的js文件;
// 01.js
console.log('hello flower')
// node 執行
(base) flowers-MacBook-Pro:~ huaqiang$ node 01.js
Node.js基礎-初識模塊化
感興趣的可以移步閱讀Node.js API文檔
與瀏覽器node環境不同不同,本地的node環境不存在window對象,但是有一個類似的對象,叫global;
全局對象global的成員:
//包含文件名的全路徑
console.log(__filename);
//文件目錄的全路徑(不包含文件名)
console.log(__dirname);
//定時函數
var timer = setTimeout(function(){
console.log(123);
// clearTimeout(timer)//執行之後 清空
},1000);
clearTimeout(timer)//緊接着清空 延時調用的方法是不會執行的
// Buffer
// console
global.console.log('')//global可以省略
// process //進程對象
//* REPL執行
> console.log(process.argv)
[ '/usr/local/bin/node' ]
//* JS文件node執行
$ node 01.js
[ '/usr/local/bin/node', '/Users/huaqiang/Desktop/node/01.js' ]
//* JS文件node執行 帶參數
(base) flowers-MacBook-Pro:node huaqiang$ node 01.js para1
[
'/usr/local/bin/node',
'/Users/huaqiang/Desktop/node/01.js',
'para1'
]
// exports
// module
// require()
exports module require() 這三者是與模塊化相關的
Node.js基礎-模塊成員導出詳解
1.模塊化開發相關成員屬性:
- exports
- module
- require()
2.模塊化開發:
- 解決命名衝突
- 優化文件依賴
3.前端:模塊化規範/標準
- AMD 對應的實現是 requirejs
- CMD 對應的實現是 seajs(阿里的)
4.服務端:模塊化規範/標準
- CommonJS 對應的實現是 Node.js(也是我們正在學的)
5.模塊化相關的規則:
- 如何定義模塊:1個js文件就是一個模塊,模塊內部的成員都是相互獨立的;
- 模塊成員的導出和引入;
// 當前目錄下定義的03.js
var sum = function(a,b){
return parseInt(a) + parseInt(b);
}
// 導出方式1:exports 導出模塊成員
exports.sum = sum;
// 導出方式2:module 導出
module.exports = sum;
// 導出方式1 對應的引入方式:引入模塊
var module1 = require('./03.js')
var ret = module1.sum(12,13)
console.log(ret)
// 導出方式2 對應的引入方式:引入模塊
var module2 = require('./03.js')
var res = module2(12,13)
console.log(res)
Node.js基礎-模塊化細節補充
1.模塊導出方式3:
// 使用global:將要導出的對象添加到全局對象中
var flag = 123
global.flag = flag
require('./04.js')
console.log(global.flag)
模塊文件的加載會被緩存:多次require加載模塊,會使用緩存;
導入模塊的時候,js後綴可以省略
2.模塊文件的後綴:
- .js
- .json:一般就是用於提供數據
- .node:一般是C語言編譯的
var m = require('./data.json');
console.log(m); //會打印引入json模塊對應的對象
var m = require('./add.node');
var ret = m.hello();
console.log(ret);
3.模塊加載的順序:
- 如果引入的模塊 不寫後綴,會按照 js json node的順序進行查找;
4.模塊分類:
- 自定義模塊
- 系統核心模塊
- fs 文件操作
- http 網絡操作
- path 路徑操作
- querystring 查詢參數解析
- url url解析
- 等等
相關係統的核心模塊可以參考Node.js API文檔
const fs = require('fs')//引入核心模塊 通過引入固定的特徵字符串