一文詳解如何使用node執(zhí)行js文件
知識回顧
I/O (Input/output)
I/O操作指的是對磁盤的讀寫操作
Node
Node
- Node是對ES標準一個實現(xiàn),Node也是一個JS引擎
- 通過Node可以使js代碼在服務器端執(zhí)行
- Node僅僅對ES標準進行了實現(xiàn),所以在Node中不包含DOM和 BOM
- Node中可以使用所有的內建對象
string Number Boolean Math Date RegExp Function object Array
而BOM和DOM都不能使用,但是可以使用console也可以使用定時器(setTimeout () setInterval() )
Node可以在后臺來編寫服務器
Node編寫服務器都是單線程的服務器
進程
進程就是一個一個的工作計劃(工廠中的車間)
線程
線程是計算機最小的運算單位(工廠中的工人),線程是千活的
傳統(tǒng)的服務器都是多線程的
每進來一個請求,就創(chuàng)建一個線程去處理請求
Node處理請求時是單線程,但是在后臺擁有一個I/O線程池
CommentJS規(guī)范
ECMAScript標準規(guī)范
- 沒有模塊系統(tǒng)
- 標準庫較少
- 沒有標準接口
- 缺乏管理系統(tǒng)
模塊化
- 如果程序設計的規(guī)模達到了一定程度,則必須對其進行模塊化。
- 模塊化可以有多種形式,但至少應該提供能夠將代碼分割為多個源文件的機制。
- CommonJS的模塊功能可以幫我們解決該問題。
CommonJS規(guī)范
- CommonJS規(guī)范的提出,主要是為了彌補當前JavaScript沒有標崔的缺陷。
- CommonJS規(guī)范為JS指定了一個美好的愿景,希望JS能夠在任何地方運行。
CommonJS對模塊的定義十分簡單
模塊引用
模塊定義
模塊標識
模塊化
- 在Node中,一個js文件就是一個模塊
- 在Node中,每一個js文件中的js代碼就是獨立運行在函數(shù)中,而不是全局作用域,就相當于一個閉包,所以一個模塊的變量和函數(shù)在其他模塊中無法訪問
就相當于下圖,閉包中的變量和函數(shù)不能被外面的函數(shù)或者操作訪問
如果想對外部的模塊訪問到,可以通過exports來向外部暴露變量和方法
向外部暴露屬性或方法
exports.x=20; exports.y=100; exports.fn=function(){ }
引入其他的模塊
在node中,通過require()函數(shù)來引入外部的模塊,require()可以傳遞一個文件的路徑作為參數(shù),node將會自動根據該路徑來引入外部模塊;如果使用相對路徑,必須用.或者..開頭
使用require()引入模塊以后,該函數(shù)會返回一個對象,這個對象代表的是引入的模塊
總結
到此這篇關于如何使用node執(zhí)行js文件的文章就介紹到這了,更多相關node執(zhí)行js文件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
nodejs和C語言插入mysql數(shù)據庫亂碼問題的解決方法
這篇文章主要介紹了nodejs和C語言插入mysql數(shù)據庫亂碼問題,需要的朋友可以參考下2017-04-04解決npm?install版本不匹配問題:?npm?ERR!?code?ETARGET?npm?ERR!?
這篇文章主要介紹了如何解決npm?install版本不匹配問題:?npm?ERR!?code?ETARGET?npm?ERR!?notarget?No?matching?version?found?for,文中給出了詳細的解決方法,需要的朋友可以參考下2024-02-02node實現(xiàn)批量上傳本地圖片轉為圖片CDN的項目實踐
本文主要介紹了node實現(xiàn)批量上傳本地圖片轉為圖片CDN的項目實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-07-07pm2發(fā)布node配置文件ecosystem.json詳解
這篇文章主要介紹了pm2發(fā)布node配置文件ecosystem.json詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05