一文詳解如何使用node執(zhí)行js文件
知識(shí)回顧
I/O (Input/output)
I/O操作指的是對(duì)磁盤的讀寫操作
Node
Node
- Node是對(duì)ES標(biāo)準(zhǔn)一個(gè)實(shí)現(xiàn),Node也是一個(gè)JS引擎
- 通過Node可以使js代碼在服務(wù)器端執(zhí)行
- Node僅僅對(duì)ES標(biāo)準(zhǔn)進(jìn)行了實(shí)現(xiàn),所以在Node中不包含DOM和 BOM
- Node中可以使用所有的內(nèi)建對(duì)象
string Number Boolean Math Date RegExp Function object Array
而BOM和DOM都不能使用,但是可以使用console也可以使用定時(shí)器(setTimeout () setInterval() )
Node可以在后臺(tái)來編寫服務(wù)器
Node編寫服務(wù)器都是單線程的服務(wù)器
進(jìn)程
進(jìn)程就是一個(gè)一個(gè)的工作計(jì)劃(工廠中的車間)
線程
線程是計(jì)算機(jī)最小的運(yùn)算單位(工廠中的工人),線程是千活的
傳統(tǒng)的服務(wù)器都是多線程的
每進(jìn)來一個(gè)請(qǐng)求,就創(chuàng)建一個(gè)線程去處理請(qǐng)求
Node處理請(qǐng)求時(shí)是單線程,但是在后臺(tái)擁有一個(gè)I/O線程池
CommentJS規(guī)范
ECMAScript標(biāo)準(zhǔn)規(guī)范
- 沒有模塊系統(tǒng)
- 標(biāo)準(zhǔn)庫較少
- 沒有標(biāo)準(zhǔn)接口
- 缺乏管理系統(tǒng)
模塊化
- 如果程序設(shè)計(jì)的規(guī)模達(dá)到了一定程度,則必須對(duì)其進(jìn)行模塊化。
- 模塊化可以有多種形式,但至少應(yīng)該提供能夠?qū)⒋a分割為多個(gè)源文件的機(jī)制。
- CommonJS的模塊功能可以幫我們解決該問題。
CommonJS規(guī)范
- CommonJS規(guī)范的提出,主要是為了彌補(bǔ)當(dāng)前JavaScript沒有標(biāo)崔的缺陷。
- CommonJS規(guī)范為JS指定了一個(gè)美好的愿景,希望JS能夠在任何地方運(yùn)行。
CommonJS對(duì)模塊的定義十分簡(jiǎn)單
模塊引用
模塊定義
模塊標(biāo)識(shí)
模塊化
- 在Node中,一個(gè)js文件就是一個(gè)模塊
- 在Node中,每一個(gè)js文件中的js代碼就是獨(dú)立運(yùn)行在函數(shù)中,而不是全局作用域,就相當(dāng)于一個(gè)閉包,所以一個(gè)模塊的變量和函數(shù)在其他模塊中無法訪問

就相當(dāng)于下圖,閉包中的變量和函數(shù)不能被外面的函數(shù)或者操作訪問

如果想對(duì)外部的模塊訪問到,可以通過exports來向外部暴露變量和方法
向外部暴露屬性或方法
exports.x=20;
exports.y=100;
exports.fn=function(){
}
引入其他的模塊
在node中,通過require()函數(shù)來引入外部的模塊,require()可以傳遞一個(gè)文件的路徑作為參數(shù),node將會(huì)自動(dòng)根據(jù)該路徑來引入外部模塊;如果使用相對(duì)路徑,必須用.或者..開頭
使用require()引入模塊以后,該函數(shù)會(huì)返回一個(gè)對(duì)象,這個(gè)對(duì)象代表的是引入的模塊
總結(jié)
到此這篇關(guān)于如何使用node執(zhí)行js文件的文章就介紹到這了,更多相關(guān)node執(zhí)行js文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Node.js對(duì)MongoDB數(shù)據(jù)庫實(shí)現(xiàn)模糊查詢的方法
模糊查詢是數(shù)據(jù)庫的基本操作之一,下面這篇文章主要給大家介紹了利用Node.js對(duì)MongoDB數(shù)據(jù)庫實(shí)現(xiàn)模糊查詢的方法教程,文中給出了詳細(xì)的介紹和示例代碼,對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。2017-05-05
node.js連接mongoose數(shù)據(jù)庫方法詳解
之前我們都是通過shell來完成對(duì)數(shù)據(jù)庫的各種操作的,在開發(fā)中大部分時(shí)候我們都需要通過程序來完成對(duì)數(shù)據(jù)庫的操作。而Mongoose就是一個(gè)讓我們可以通過Node來操作MongoDB的模塊2022-08-08
nodejs+express最簡(jiǎn)易的連接數(shù)據(jù)庫的方法
這篇文章主要介紹了nodejs+express 最簡(jiǎn)易的連接數(shù)據(jù)庫,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
基于NodeJS的前后端分離的思考與實(shí)踐(六)Nginx + Node.js + Java 的軟件棧部署實(shí)踐
關(guān)于前后端分享的思考,我們已經(jīng)有五篇文章闡述思路與設(shè)計(jì)。本文介紹淘寶網(wǎng)收藏夾將 Node.js 引入傳統(tǒng)技術(shù)棧的具體實(shí)踐。2014-09-09
詳解使用Node.js 將txt文件轉(zhuǎn)為Excel文件
這篇文章主要介紹了詳解使用Node.js 將txt文件轉(zhuǎn)為Excel文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
Node.js如何對(duì)SQLite的async/await封裝詳解
這篇文章主要給大家介紹了關(guān)于Node.js如何對(duì)SQLite的async/await進(jìn)行封裝的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02
編譯打包nodejs服務(wù)代碼如何部署到服務(wù)器
這篇文章主要介紹了編譯打包nodejs服務(wù)代碼如何部署到服務(wù)器問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10

