node.js中fs\path\http模塊的使用方法詳解
先上本文的核心圖
一、node.js概念與作用
1.概念:
node.js 是一種 基于谷歌V8引擎 的 運行環(huán)境,V8是Google發(fā)布的開源JavaScript引擎,本身是用于Chrome瀏覽器的js解釋部分
2.作用:
- 具有超強的高并發(fā)能力,能夠實現(xiàn)高性能服務器
- Node 包管理工具(node package manager,NPM)提供了數(shù)十萬個可重用的工具包。它還提供了一流的依賴解決方案,可實現(xiàn)自動化工具鏈構建。(說白了node就是便于我們模塊化的開發(fā),需要啥就導入啥進去,不需要把整個文件都導入到我們的文件中)
二、模塊發(fā)開發(fā)三大板塊
1.模塊化開發(fā)介紹
把一個大文件拆分成很多個小文件,然后使用特定的語法組合在一起,這種開發(fā)方式叫做模塊化開發(fā)
模塊化開發(fā)有啥好處?
- 按需引入,節(jié)省資源
- 避免變量污染
- 業(yè)務分離,便于維護
2.常見三大模塊
1.fs 讀寫模塊
writeFile()的使用
①導入內置模塊
const fs = require('fs')
②使用模塊
第一個參數(shù)path : 文件路徑
第一個參數(shù)encoding : 文件編碼 默認值二進制. 中文: utf8
第三個參數(shù)callback : (err,data)=>{ err:錯誤信息 data:讀取的數(shù)據(jù) }
fs.readFile('./data/aaa.txt','utf-8',(err,data)=>{ if(err){ console.log(err); throw err }else{ console.log(data); } })
③在集成終端查看
輸入node 文件名(可按tab快速補齊)
writeFile()的使用
①導入內置模塊
const fs = require('fs')
②使用模塊
第一個參數(shù): 文件路徑
第二個參數(shù): 要寫入的數(shù)據(jù)
第三個參數(shù): 文件編碼 默認是數(shù)據(jù)編碼
第四個參數(shù): (err)=>{ }
fs.writeFile('./data/bbb.txt','年少莫問前程,天涯亦有歸途',err=>{ if( err ){ throw err }else{ console.log('文件寫入成功') } })
③在集成終端查看
點開bbb.txt查看內容
2.path 路徑模塊
①.導入模塊
const path = require('path')
②使用???有四種方法
(1) 獲取一個文件的拓展名
/* 不關心此路徑文件在不在, 就是處理這個字符串。 獲取.后面的部分可以知道這個文件格式 */ console.log( path.extname('index.html') )// .html console.log( path.extname('aaa.bbb') )// .bbb console.log(path.extname('javaScript.js'));//js
集成終端查看
(2)拼接相對路徑, 使用join方法
/* 把多個字符串按照路徑的方式拼接起來 */ console.log( path.join('aaa','bbb') )// aaa/bbb console.log(path.join('a,b,c'));//a,b,c
集成終端查看
(3) 拼接絕對路徑
/* 默認從磁盤根目錄開始拼接出完整的路徑 */ console.log( path.resolve('/aa','bb','cc') )// 文件夾絕對路徑/aa/bb/cc
集成終端查看
(4)獲取當前文件所在的絕對路徑
console.log( __dirname )// 可獲取文件夾絕對路徑 console.log( path.join(__dirname , 'aaa','bbb') )
集成終端查看
3.http 搭建服務器模塊
整體步驟:
①導入http模塊
const http = require('http')
②創(chuàng)建服務器
const app = http.createServer( (req,res)=>{ // (1) req : request 請求報文 console.log( decodeURI(req.url) ) // console.log( req.url, decodeURI(req.url) ) // (2)處理 // (3)res : response 響應報文 } )
③開啟http服務器
// 3.開啟服務器 /* 第一個參數(shù) port : 端口號 一個電腦有很多個軟件,一個軟件對應一個端口號. 范圍[0,65535] 第二個參數(shù) hostname : 主機名(ip地址) 網(wǎng)線地址: 192.168.81.34 cmd命令:ipconfig 本機地址: 127.0.0.1 (獲取當前網(wǎng)線的ip地址,相當于js中的self) 第三個參數(shù) callback : ()=>{} */ app.listen(3088,'192.168.74.149',()=>{ console.log('服務器開啟成功') })
之后進瀏覽器在地址欄輸入,可查看到服務器接受到了666666
(查看本機IP地址,在cmd中輸入ipconfig即可)
方法1:在服務器中根據(jù)請求不同處理不同的信息
const http =require('http') const app =http.createServer((req,res)=>{ if( req.url === '/index' ){ // 3.response : 響應報文 // 設置響應頭 : 服務器告訴瀏覽器我給你的數(shù)據(jù)是什么格式 res.writeHead(200,{ 'Content-Type':'text/html;chartset=utf8' }) res.end('index')//響應體 }else if( req.url === '/login' ){ res.writeHead(200,{ 'Content-Type':'text/json;chartset=utf8' }) // 后臺只能響應 字符串或二進制, 如果你想要響應其他數(shù)據(jù)需要轉成json // js=>json : JSON.stringify( js對象 ) res.end( JSON.stringify( {name:'初映',age:22} ) ) }else{ res.end('Not Found' + req.url ) } }) app.listen(3088,'192.168.74.149',()=>{ console.log('服務器開啟成功') })
請求地址是login。res.end(瀏覽器響應)
請求地址是index的時候。res.end(瀏覽器響應)
當服務器收到了錯誤的請求地址。res.end(瀏覽器響應)
方法2:nodejs響應客戶端html文件
①導入需要的模塊
// 1.導入 const http =require('http') const fs =require('fs') const path =require('path')
②創(chuàng)建我們的服務器
// 2.創(chuàng)建 const app = http.createServer((req,res)=>{ if(req.url==='/'){ // 響應index.html代碼 fs.readFile(path.join(__dirname,'index.html'),(err,data)=>{ if (err) { throw err }else{ res.end(data) } })}} )
③開啟服務器
// 3.開啟 app.listen(3000,()=>{ console.log('服務器開啟成功') })
網(wǎng)頁地址欄搜索
總結
到此這篇關于node.js中fs\path\http模塊使用的文章就介紹到這了,更多相關node.js fs\path\http模塊使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
解決使用node命令提示:'node'不是內部或外部命令,也不是可運行的程序
最近在工作中遇到了個常見的問題,分享給大家,這篇文章主要給大家介紹了關于如何解決使用node命令提示:'node'不是內部或外部命令,也不是可運行的程序的相關資料,需要的朋友可以參考下2023-02-02node.js中的http.createClient方法使用說明
這篇文章主要介紹了node.js中的http.createClient方法使用說明,本文介紹了http.createClient的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下2014-12-12node.js多個異步過程中判斷執(zhí)行是否完成的解決方案
這篇文章主要給大家介紹了關于node.js多個異步過程中判斷執(zhí)行是否完成的幾種解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-12-12node.js中的buffer.Buffer.isBuffer方法使用說明
這篇文章主要介紹了node.js中的buffer.Buffer.isBuffer方法使用說明,本文介紹了buffer.Buffer.isBuffer的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下2014-12-12使用nodejs搭建一個簡易HTTP服務的實現(xiàn)示例
本文主要介紹了使用nodejs搭建一個簡易HTTP服務的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-05-05nodejs body-parser 解析post數(shù)據(jù)實例
下面小編就為大家?guī)硪黄猲odejs body-parser 解析post數(shù)據(jù)實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07