[V-HM] Node基礎1

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')//引入核心模塊 通過引入固定的特徵字符串

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章