從零開始學習Node.js
url模塊
1.parse 方法
// test02.js import http from 'http' import url from 'url' const parseUrl = url.parse('https://www.baidu.com/news?name=諸葛亮&age=18#helloworld') console.log(parseUrl) http.createServer((req, res) => { res.writeHead(200, {'Content-Type': 'text/html;charset=utf-8'}) res.write('你好, hello world!') res.end() }).listen(3000) console.log('My server is running at http://localhost:3000')
解析url地址,獲得一個被解析的url詳情對象,包含協議、域名、路徑、端口、查詢參數、哈希等信息。
第二個參數為boolean值,默認為false,傳true會將query轉為對象
const parseUrl = url.parse('https://www.baidu.com/news?name=諸葛亮&age=18#helloworld', true) console.log(parseUrl)
2.format 方法
傳入一個url信息對象(即parse方法返回的對象),返回一個具體的路徑,該方法是parse方法的逆運用。
const formatUrl = url.format({ protocol: 'https:', slashes: true, auth: null, host: 'www.baidu.com', port: null, hostname: 'www.baidu.com', hash: '#helloworld', search: '?name=諸葛亮&age=18', query: 'name=諸葛亮&age=18', pathname: '/news', path: '/news?name=諸葛亮&age=18', href: 'https://www.baidu.com/news?name=諸葛亮&age=18#helloworld' }) console.log(formatUrl) // 輸出 https://www.baidu.com/news?name=諸葛亮&age=18#helloworld
3.resolve 方法
拼接或替換次級路徑
const result1 = url.resolve('https://www.baidu.com', 'news') const result2 = url.resolve('https://www.baidu.com/home', '') const result3 = url.resolve('https://www.baidu.com/home', 'about') const result4 = url.resolve('https://www.baidu.com/home/index', 'about') const result5 = url.resolve('https://www.baidu.com/home/index?name=諸葛亮', 'about/hello') console.log(result1) console.log(result2) console.log(result3) console.log(result4) console.log(result5)
輸出結果:
events模塊(事件驅動)
1.引入event模塊
2.創建一個eventEmitter實例
3.利用eventEmitter中的on方法和emit方法實現事件驅動,類似vue中的$on和$emit,即發佈訂閱模式
可以解決異步需求,如下:
import fs from 'fs' import event from 'events' const eventEmitter = new event.EventEmitter() eventEmitter.on('events', data => { console.log('收到的數據', data.toString()) }) fs.readFile('static/index.html', (err, data) => { eventEmitter.emit('events', data) })
path模塊
import path from 'path' // 獲取後綴名 const extName = path.extname('index.html') // .html
總結
本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!