Node教程——入門


一、node入門

(一)、 首先我們需要下載安裝

1.說實話就是一個代碼的運行環境,我們下載是下載穩定版LTS后綴 下載完之后就一頓安裝就完事

(二)、 明確一點,還有簡單的運行

我們的ECMAScript依然是萬物的核心,node的組成就是ESCA 還有Node模塊
所有的語法都是js的,

node執行方式:在同級的文件夾下node XXX.JS就能運行了

(三)、 Nodejs模塊花開發

’模塊化開發‘是一種軟件開發方式

  • js有弊端,文件與文件依賴不明確.命名沖突導致代碼覆蓋

  • 使用模塊化開發方式就可以解決這個問題

  1. nodejs開發的模塊開發規范

nodejs中 一個js就是一個模塊
默認不會導入模塊內的東西
我們使用exports可以到處當前模塊里的東西(變量啊 )
我們在另一個文件我們需要使用的話就用require就行了

核心:exports對象里面就保存了你先要到處的屬性(函數也是屬性本質上來說)
在另一個模塊里 requerti就是返回以惡express對象,這樣我們模塊之間就能實現通信了

示例代碼
a模塊

 const add = (n1, n2) => n1 + n2;
exports.add = add; //這個的意思就是到出

b模塊

//const a = require('./03.module-a.js');
//這個是可以去掉js的
const a = require('./03.module-a'); //它是由返回值的,值= 窮啊hi前模塊中的experson對象
console.log(a);
console.log(a.add(10, 20));

除了exports還有什么樣的方式導出呢?
1.exprots
2.方式
module.exports.version = version;
module.exports.sayHi = syHi;

exports對象還有moudle.exports
這兩個都是一個對象地址的引用

注意: 當exports對象和moudle.exports對象指向的不是同一個對象時 以module.exports為准

我們的導入操作依然沒有變化:require('./04.module.exports.js'); 注意這個js后綴可以去掉,這里導入是相對路徑

代碼舉例:


const greeting = name => `hello ${name}`;



const x = 100;
exports.x = x;
module.exports.greeting = greeting;
// 當exports對象和moudle.exports對象指向的不是同一個對象時 以module.exports為准
module.exports = {
        name: 'zhangsan'
    }
    // 這樣的話 你這樣的寫就錯了我們不以這個為准我們以exports為准
exports = {
    age: 20
}

(四)、 Node的一些重要的系統模塊

  • 文件模塊fs

功能:
1.讀取文件的模塊
2.寫入文件
3.創建文件夾

  1. 使用舉例:讀取文件
代碼規范: fs.redFile('路徑(注意)',[文件編碼],callback)//文件編碼是可選項
// 1.通過模塊的名字fs對模塊進行引用
// 模塊的名字是很重要的, 因為在node中, 一些系統的api是也要遵循node引入規范的
const fs = require('fs');
//這樣你就拿到了,一個可以處理文件的fs對象了 這個對象就可以處理各種各樣的文件

// 2.通過模塊內部的readFile讀取文件內容
//代碼實例:fs.redFile('路徑(注意)',[文件編碼],callback)
// 這個[]表示這個參數是可選的
fs.readFile('./01.helloworld.js', 'utf8', (err, data) => {
    // 如果文件讀取出錯err 是一個對象 包含錯誤信息
    // 如果文件讀取正確 err是 null
    // doc 是文件讀取的結果
    console.log(err);
    console.log(data);
});

  1. 使用舉例:寫入文件(通常是用來收集錯誤日志)
代碼規范: fs.writeFile('寫入到哪兒去(是一個包含文件的路徑名)','即將寫入的內容',callback)
const fs = require('fs');

//1.由於你這個fs.writeFile是一個耗時的操作,故而不能拿變量去接受
//重要如過demo,txt不存在 我們就自動創建一個
fs.writeFile('./demo.txt', '即將要寫入的內容', err => {
    if (err != null) {
        console.log(err);
        return;
    }
    console.log('文件內容寫入成功');
    // 第三個callback還是非常重要的
})
  • 系統模塊path

為什么有這個?因為我們得服務器可能再window還有linux下運行,而我們的linux的路徑符號是不一樣的,為了解決這個東西於是乎這個東西就誕生了

path不是一個耗時操作 我們可以直接拿到返回值,這個返回值就是拼接好的路徑字符串
1.語法

path.join('路徑','路徑','....')

2.代碼實例

path不是一個耗時操作 我們可以直接拿到返回值,這個返回值就是拼接好的路徑字符串
const path = require('path'); //引入!!引入!

const finalPath = path.join('public', 'uploads', 'avatar');

這個返回值會自動根據系統的不同 ,變成不同的路徑出來

相對路徑是有問題的:它相對的是當前的命令行窗口

注意,在大多數Node服務器開發我們一般都是做成絕對路徑

3.獲取當前文件的絕對路徑的一個屬性
__dirname這個屬性里面就保存了當前js文件所在的絕對路徑


const fs = require('fs');
const path = require('path');

console.log( __dirname);

console.log(path.join(__dirname, '01.helloworld.js'))

fs.readFile(path.join(__dirname, '01.helloworld.js'), 'utf8', (err, doc) => {
    console.log(err)
    console.log(doc)
});


(五)、 常見的第三方模塊

所謂的第三方模塊都是別人做好的’輪子‘。他們都在一個文件夾里面

第三方的模塊存在的形式
1.以js文件存在,里面對外暴露了一些API接口 ,通過這個接口你就可以很方便的搞到它里面的功能

2.命令行功能的形式存在,什么意思呢?就是這種模塊的使用 ,是通過命令行輸入命令實現的,這也是大多是CLI腳手架的實現方式

  • 獲取第三方模塊

我們在npm上存儲還有發布模塊,只要你想 你也就可以發布,這個npm有一個網站,有興趣你可以去看看

npm全稱 'node pack mannerge'

在node安裝的時候 npm工具已經 附在其中了,
使用的方式:npm install XXX 這個XX就是你想要的模塊名字

1.使用舉例

  • 安裝 formidable包
    npm install formidable,敲擊回車就完事,默認的下載到的地址就是當前的文件夾目錄 ,里面有一個node_modules文件夾,這些包都會下載到這個文件夾里面

同時我們還有package-lock.json文件 這里面記錄了當前項目所用的所有的包信息,
在你移值或者發生項目給別人的時候 你不必發生整個項目,你可以不發送node_modules文件夾,上傳到git也是一樣 ,一般是不上傳這個文件夾。
我們根據package-lock.json就可以完成node_modules里面的所有依賴包的安裝

命令:npm install

  • 卸載 formidable
    npm uninstall formidable

  • 全局安裝
    安裝有兩種一種是:本地安裝,一種是全局安裝
    所謂的全局就是安裝一起 全局都可以用 ,每一個項目都可以用
    對應的本地安裝就是僅限當前項目使用

  • 安裝一個重要的全局的包 nodemon

這個東西 ,是提供自動刷新的功能,只要文件有改動它就會自動更新
使用nodemon舉例:

命令行下:nodemon XXX.JS ,此時命名就掛起了;這樣只要XXX.js文件發生改動 ,控制台就會自動的刷新控制台,

全局安裝nodemon

npm install nodemon -g
  • 如何斷開這個掛起的操作?ctrl+c就可以了

  • 再來一個包nrm

作用 改變下載的網站,原生的npm在國外下載,在國內我們需要換一個下載地址,這個nrm就是來干這個事的

安裝

npm install nrm -g
查詢可用的國內下載地址nrm ls
切換npm下載地址 nrm user

nrm user taobao回車就完事

  • 安裝一下gulp
    還是一樣的操作流程
    npm install gulp
    注意我們不要-g 因為我們的gulp是庫文件的形式安裝,只在當前項目下能使用

講一下這個gulp是什么:這是基於node的前端構建工具
什么是構建工具呢?
意思就是你可以拿這個東西去做一些重復性的工作,比如
壓縮html js css代碼
es6語法的轉換(轉化為es5)
less轉css
抽取公共文件部分
游覽器的自動刷新...我們還有好多的騷操作,這點的內容我們將會在下一講給大家講解:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM