學(xué)習(xí)筆記20170601">【PMP】學(xué)習(xí)筆記20170601
847
2022-05-30
在這之前我們已經(jīng)學(xué)習(xí)了 Node 的安裝環(huán)境和配置,對(duì)其已經(jīng)有了一定的了解和認(rèn)識(shí),這次我們主要來(lái)學(xué)習(xí)一下它的基礎(chǔ)知識(shí)和常用函數(shù)、模塊等內(nèi)容。作為一個(gè)前端開(kāi)發(fā)的我們,增加 Node 這方面的學(xué)習(xí)對(duì)我們是有很大幫助,自己也可以做一些小的服務(wù)端應(yīng)用開(kāi)發(fā),寫API接口,文件上傳服務(wù)等。
NPM使用
在使用 Node 開(kāi)發(fā),我們會(huì)經(jīng)常用到一些其它模塊,就要使用 NPM 來(lái)安裝,常用命令:
npm install
npm install
npm uninstall
npm update
npm list -g? ? // 查看全局安裝的模塊名稱
npm init? ?// 根據(jù)package.json里面的配置,初始化安裝模塊
注:
Node命令
Node 自帶交互式解釋器,可以直接在命令提示符或終端窗口輸入命令,執(zhí)行 JavaScript 代碼。
輸入 node? ?// 啟動(dòng) Node 終端
下面我們就可以直接進(jìn)行 JavaScript 代碼運(yùn)行,可以執(zhí)行簡(jiǎn)單運(yùn)算符,定義變量,多行表達(dá)式等。
如果創(chuàng)建一個(gè) xx.js文件,在 js 文件中寫好了執(zhí)行的代碼,可以直接運(yùn)行如下命令,打印輸出結(jié)果。
node xx.js
模塊系統(tǒng)
模塊系統(tǒng)就是讓 Node.js 文件相互調(diào)用,一個(gè) Node.js 文件就是一個(gè)模塊,文件內(nèi)容可以是 JavaScript 代碼、JSON或者編譯過(guò)的 C/C++ 擴(kuò)展。
exports 是模塊公開(kāi)的接口,require 是從外部獲取一個(gè)模塊的接口。
引入模塊語(yǔ)法:var a = require("../xx");
1.exports 導(dǎo)出對(duì)象
// 創(chuàng)建 test.js 文件 exports.test = function() { console.log('Hello World'); } // 創(chuàng)建 main.js 文件 var a = require('./test'); // 引入 test 模塊 a.test();
2.module.exports 導(dǎo)出創(chuàng)建的對(duì)象本身
// 創(chuàng)建 test.js 文件 function test() { this.run = function() { console.log('Hello World'); } } module.exports = test; // 創(chuàng)建 main.js 文件 var test = require('./test'); // 引入 test 模塊 var a = new test(); // new 一個(gè) test 對(duì)象 a.run(); // 執(zhí)行 run 方法
運(yùn)行:node main
輸出:Hello Word
注:exports:對(duì)外暴露屬性或者方法。
module.exports:對(duì)外暴露對(duì)象,對(duì)象包含屬性和方法(類似class)。
函數(shù)
在 JavaScript 中一個(gè)函數(shù)可以作為另一個(gè)函數(shù)的參數(shù)使用,Node 中也可以這樣使用。
// 定義函數(shù) function run(msg) { console.log(msg); } // 定義執(zhí)行函數(shù) function exec(fun, value) { fun(value); } // 調(diào)用執(zhí)行函數(shù) exec(run, "exec run");
匿名函數(shù)
exec(function(msg){ console.log(msg) }, "exec anonymous");
文件系統(tǒng)
Node 提供的文件模塊,用于對(duì)文件進(jìn)行打開(kāi)、讀、寫等操作,文件系統(tǒng)模塊中的方法都有同步和異步操作。
語(yǔ)法:var fs = require("fs");
1.打開(kāi)文件
語(yǔ)法:fs.open(path, flags[, mode], callback);
path:文件路徑
flags:文件打開(kāi)行為
mode:設(shè)置文件權(quán)限
callback:回調(diào)函數(shù)
2.獲取文件信息
語(yǔ)法:fs.stat(path, callback)
path:文件路徑
callback:回調(diào)函數(shù)
3.讀文件
語(yǔ)法:fs.read(fd, buffer, offset, length, position, callback)
fd:通過(guò) fs.open() 返回的文件描述符
buffer:數(shù)據(jù)寫入的緩沖區(qū)
offset:緩沖區(qū)寫入的偏移量
length:文件讀取字節(jié)數(shù)
position:文件讀取起始位置
callback:回調(diào)函數(shù)
4.寫文件
語(yǔ)法:fs.writeFile(file, data[, options], callback)
5.關(guān)閉文件
語(yǔ)法:fs.close(fd, callback)
常用工具模塊
OS 模塊
提供基本的系統(tǒng)操作函數(shù)。
var os = require("os");
Path 模塊
提供處理文件路徑的函數(shù)。
var path = require("path");
Http 模塊
提供處理瀏覽器請(qǐng)求處理的函數(shù)。
var http = require("http");
var url = require("url");
寫到這里我們已經(jīng)對(duì) Node 的基本開(kāi)發(fā)有了一定的了解,可以使用這些常用的模塊進(jìn)行開(kāi)發(fā)小應(yīng)用,更多的模塊和提供的API可以查閱官方文檔:http://nodejs.cn/api/
Node.js
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。