最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node.js核心模塊有哪些

 更新時(shí)間:2021年04月29日 09:52:27   作者:淺笑·  
這篇文章主要介紹了node.js核心模塊有哪些,對(duì)node.js感興趣的同學(xué),可以參考下

全局對(duì)象

在瀏覽器JS中,通常window是全局對(duì)象,而nodejs中的全局對(duì)象是global,所有全局變量都是global對(duì)象的屬性。

在nodejs中能夠直接訪問(wèn)到的對(duì)象通常都是global的屬性,如console、 process等

全局對(duì)象與全局變量

global最根本的作用是作為全局變量的宿主。

全局變量的條件:

在最外層定義的變量;全局對(duì)象的屬性;隱式定義的變量(未定義直接賦值的變量)

定義一個(gè)全局變量,同時(shí)也是全局對(duì)象的屬性。

永遠(yuǎn)使用var定義變量以避免引入全局變量,因?yàn)槿肿兞繒?huì)污染命名空間,提高代碼的耦合風(fēng)險(xiǎn)。

process

process是一個(gè)全局變量,即global對(duì)象的屬性。它用于描述nodejs進(jìn)程狀態(tài)的對(duì)象,提供一個(gè)與操作系統(tǒng)的簡(jiǎn)單接口。

process.argv是命令行參數(shù)數(shù)組,第一個(gè)元素是node, 第二個(gè)是腳本文件名,從第三個(gè)開始每個(gè)元素是一個(gè)運(yùn)行參數(shù)。

console.log(process.argv);

process.stdout是標(biāo)準(zhǔn)輸出流。

process.stdin是標(biāo)準(zhǔn)輸入流。

process.nextTick(callback)的功能是為事件循環(huán)設(shè)置一項(xiàng)任務(wù),會(huì)在下次事件循環(huán)調(diào)響應(yīng)時(shí)調(diào)用callback

還有process.platform, process.pid, process.execPath, process.memoryUsage()等。posix進(jìn)程信號(hào)響應(yīng)機(jī)制。

console

用于提供控制臺(tái)標(biāo)準(zhǔn)輸出。

  • console.log()
  • console.error()
  • console.trace()

常用工具util

util是一個(gè)Node.js核心模塊,提供常用函數(shù)的集合,用于彌補(bǔ)核心js的功能過(guò)于精簡(jiǎn)的不足。

util.inherits實(shí)現(xiàn)對(duì)象間原型繼承的函數(shù)。js面向?qū)ο筇匦允腔谠偷摹?/p>

util.inspect將任意對(duì)象轉(zhuǎn)換為字符串的方法。

util.isArray(), util.isRegExp(), util.isDate(), util.isError(), util.format(), util.debug()等

事件機(jī)制events--Events模塊

events是NodeJs最重要的模塊。NodeJs本身架構(gòu)就是事件式的,而它提供了唯一的接口,所以堪稱NodeJs事件編程的基石。

事件發(fā)射器

events模塊只提供一個(gè)對(duì)象events.EventEmitter.它核心就是事件發(fā)射與事件監(jiān)控器功能的封裝。

EventEmitter常用的API:

  • EventEmitter.on(event, listener)為指定事件注冊(cè)一個(gè)監(jiān)聽器,接受一個(gè)字符串event和一個(gè)回調(diào)函數(shù)listener。
  • EventEmitter.emit(event, [arg1], [arg2], [...])發(fā)射event事件,傳遞若干可選參數(shù)到事件監(jiān)聽器的參數(shù)表。
  • EventEmitter.once(event, listener)為指定事件注冊(cè)一個(gè)單次監(jiān)聽器,即監(jiān)聽器最多只會(huì)觸發(fā)一次,觸發(fā)后立刻解除該監(jiān)聽
  • EventEmitter.removeListener(event, listener)移除指定事件的某個(gè)監(jiān)聽器,listener必須是該事件已經(jīng)注冊(cè)過(guò)的監(jiān)聽器。
  • EventEmitter.removeAllListeners([event])移除所有事件的所有監(jiān)聽器,如果指定event,則移除指定事件的所有監(jiān)聽器。

error事件

遇到異常的時(shí)候,通常會(huì)發(fā)射error事件。

繼承EventEmitter

不會(huì)直接使用EventEmitter, 而是在對(duì)象中繼承它。包括fs, net, http在內(nèi),只要是支持事件響應(yīng)的核心模塊都是EventEmitter的子類。

文件系統(tǒng)fs--fs模塊

文件操作的封裝,提供了文件的讀取、寫入、更名、刪除、遍歷目錄、鏈接等posix文件系統(tǒng)操作。有異步和同步兩個(gè)版本。

fs.readFile(filename, [encoding], [callback(err, data)])是最簡(jiǎn)單的讀取文件的函數(shù)。

var fs = require("fs");
fs.readFile("server.js", "utf-8", function(err, data){
if (err){
    console.log(err);
}else{
    console.log(data);
}})

fs.readFileSync

fs.readFileSync(filename, [encoding])是fs.readFile同步的版本。它接受的參數(shù)和fs.readFile相同,而讀取到的文件內(nèi)容會(huì)以函數(shù)返回值的形式返回。如果有錯(cuò)誤發(fā)生,fs將會(huì)拋出異常,你需要使用try和catch捕捉并處理異常。

fs.open

fs.read

一般來(lái)說(shuō),除非必要,否則不要使用以上兩種方式讀取文件,因?yàn)樗竽闶謩?dòng)管理緩沖區(qū)和文件指針,尤其是在你不知道文件大小的時(shí)候,這將會(huì)是一件很麻煩的事情。

Http 模塊

http 模塊主要用于搭建 http 服務(wù),處理用戶請(qǐng)求信息等

使用 http 請(qǐng)求

const http = require('http');
// 使用發(fā)送http請(qǐng)求
const options = {
  protocol: 'http:',
  hostname: 'www.baidu.com',
  port: '80',
  method: 'GET',
  path: '/img/baidu_85beaf5496f291521eb75ba38eacbd87.svg'
};
let responseData = '';
const request = http.request(options, response => {
  console.log(response.statusCode); // 獲取鏈接請(qǐng)求的狀態(tài)碼
  response.setEncoding('utf8');
  response.on('data', chunk => {
    responseData += chunk;
  });
  response.on('end', () => {
    console.log(responseData);
  });
});
request.on('error', error => {
  console.log(error);
});
request.end();

使用 http 創(chuàng)建服務(wù)

// 使用http創(chuàng)建服務(wù)器
const port = 3000;
const host = '127.0.0.1';
const server = http.createServer();
server.on('request', (request, response) => {
  response.writeHead(200, {
    'Content-Type': 'text/plain'
  });
  response.end('Hello World\n');
});
server.listen(port, host, () => {
  console.log(`Server running at http://${host}:${port}/`);
});

關(guān)于 Node 核心模塊還有很多,比如 Buffer、crypto加密、stream的使用、net網(wǎng)絡(luò)、os操作系統(tǒng)等等。

以上就是node.js核心模塊有哪些的詳細(xì)內(nèi)容,更多關(guān)于node.js核心模塊的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 在Node.js中使用HTTP上傳文件的方法

    在Node.js中使用HTTP上傳文件的方法

    這篇文章主要介紹了在Node.js中使用HTTP上傳文件的方法,作者以windows下的visual studio作為操作node的環(huán)境,推薦閱讀!需要的朋友可以參考下
    2015-06-06
  • 前端之npm運(yùn)行時(shí)配置文件.npmrc的方法(可用于配置npm淘寶源)

    前端之npm運(yùn)行時(shí)配置文件.npmrc的方法(可用于配置npm淘寶源)

    這篇文章主要給大家介紹了關(guān)于前端之npm運(yùn)行時(shí)配置文件.npmrc(可用于配置npm淘寶源)的相關(guān)資料,.npmrc 文件是用于配置 npm(Node.js 包管理器)行為的配置文件,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • Node學(xué)習(xí)記錄之cluster模塊

    Node學(xué)習(xí)記錄之cluster模塊

    本篇文章主要介紹了Node學(xué)習(xí)記錄之cluster模塊,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • 淺析Node在構(gòu)建超媒體API中的作用

    淺析Node在構(gòu)建超媒體API中的作用

    超媒體即Hypermedia,是一種采用非線性網(wǎng)狀結(jié)構(gòu)對(duì)塊狀多媒體信息(包括文本、圖像、視頻等)進(jìn)行組織和管理的技術(shù)。超媒體的概念類似于早期的超文本,超文本的本質(zhì)是在文本內(nèi)容加上鏈接,這樣就構(gòu)成了超文本。超媒體也類似。
    2014-07-07
  • nodejs分頁(yè)類代碼分享

    nodejs分頁(yè)類代碼分享

    最近在寫nodejs項(xiàng)目,沒(méi)有發(fā)現(xiàn)合適或者特別好用的分頁(yè)插件,今天晚上自己寫了一個(gè),分享給大家,也希望大家能夠拍磚!
    2014-06-06
  • Nest.js中使用HTTP五種數(shù)據(jù)傳輸方式小結(jié)

    Nest.js中使用HTTP五種數(shù)據(jù)傳輸方式小結(jié)

    本文主要介紹了Nest.js中使用HTTP五種數(shù)據(jù)傳輸方式小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 解決npm install命令一直失敗的坑

    解決npm install命令一直失敗的坑

    文章總結(jié):執(zhí)行npminstall命令失敗,可能是由于代理問(wèn)題,可以嘗試更換代理、權(quán)限、VSCode版本或網(wǎng)絡(luò)環(huán)境(如使用移動(dòng)熱點(diǎn))來(lái)解決
    2024-12-12
  • node連接kafka2.0實(shí)現(xiàn)方法示例

    node連接kafka2.0實(shí)現(xiàn)方法示例

    這篇文章主要介紹了node連接kafka2.0,nodejs連接kafka2.0的實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了kafka2.0的功能、原理、以及node.js連接kafka2.0的具體實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2023-05-05
  • nodejs簡(jiǎn)單實(shí)現(xiàn)TCP服務(wù)器端和客戶端的聊天功能示例

    nodejs簡(jiǎn)單實(shí)現(xiàn)TCP服務(wù)器端和客戶端的聊天功能示例

    這篇文章主要介紹了nodejs簡(jiǎn)單實(shí)現(xiàn)TCP服務(wù)器端和客戶端的聊天功能,結(jié)合實(shí)例形式分析了nodejs基于TCP協(xié)議實(shí)現(xiàn)的聊天程序客戶端與服務(wù)器端具體步驟與相關(guān)操作技巧,代碼備有較為詳盡的注釋便于理解,需要的朋友可以參考下
    2018-01-01
  • Nodejs使用pkg打包為可執(zhí)行文件的解決方案

    Nodejs使用pkg打包為可執(zhí)行文件的解決方案

    使用pkg將Node.js項(xiàng)目打包為可執(zhí)行文件時(shí),可能會(huì)遇到一些常見的錯(cuò)誤,如未指定目標(biāo)平臺(tái)、在遠(yuǎn)程緩存中找不到基礎(chǔ)Node.js二進(jìn)制文件等,本文介紹了如何通過(guò)配置package.json中的bin入口、手動(dòng)下載指定版本的Node.js二進(jìn)制文件到本地.pkg-cache目錄解決這些問(wèn)題
    2024-11-11

最新評(píng)論

苍南县| 德清县| 塘沽区| 克拉玛依市| 义马市| 通海县| 武隆县| 石景山区| 舟曲县| 汤阴县| 普兰店市| 东源县| 密云县| 遂平县| 黄石市| 荆门市| 禹州市| 竹溪县| 博兴县| 南丹县| 名山县| 青海省| 乌鲁木齐县| 台山市| 峨眉山市| 筠连县| 荆州市| 冀州市| 迁西县| 民丰县| 涟源市| 乌拉特中旗| 海安县| 湟中县| 木兰县| 特克斯县| 静宁县| 云阳县| 基隆市| 永州市| 成都市|