詳解node.js的http模塊實例演示
上世紀(jì)六七十年代,紅岸基地一直在向茫茫外太空發(fā)送訊號,當(dāng)葉文潔通過太陽作為廣播,將地球的訊號向外發(fā)送時,宇宙的各個先進(jìn)文明都接收到了訊號,其中就包括了離我們最近的三體星。
本篇用node.js的http模塊模擬這一事件。
let http = require('http') // 創(chuàng)建一個web服務(wù)器 let server = http.createServer() server.on('request', function () { console.log('我們接收到了一個用原始膜發(fā)送訊號的文明,這個文明竟然完全不知道宇宙的黑暗森林法則,我們暫不清理她,觀察下這個文明的狀態(tài)') }) let port = 8000 server.listen(port, function () { console.log('在瀏覽器訪問: http://127.0.0.1:' + port + ', 你將把你的請求發(fā)送到宇宙中...') })
開啟服務(wù):
☁ 01 [master] :zap: node 08.js
在瀏覽器訪問: http://127.0.0.1:8000, 你將把你的請求發(fā)送到宇宙中...
我們接收到了一個用原始膜發(fā)送訊號的文明,這個文明竟然完全不知道宇宙的黑暗森林法則,我們暫不清理她,觀察下這個文明的狀態(tài)
由于服務(wù)端沒有給客戶端響應(yīng),因為客戶端一直在等待響應(yīng)
http服務(wù).gif
當(dāng)我們的請求被三體星獲取到后,三體人由于自己的母星不宜生存,在ETO組織的協(xié)助下,三體星準(zhǔn)備入侵地球,以下是ETO與三體星的通信:
三體指令
let http = require('http') let fs = require('fs') // 創(chuàng)建一個web服務(wù)器 let server = http.createServer() server.on('request', function (req, res) { let url = req.url if (url === '/') { // 設(shè)置編碼格式,避免中文亂碼 res.setHeader('Content-Type', 'text/plain; charset=utf-8') res.end('歡迎來到三體世界') } else if (url === '/point') { console.log('地球人不知道有黑暗森林的存在,葉文潔悟出了這個道理,并啟發(fā)了羅輯,我們要讓ETO殺了羅輯') fs.readFile('./data/threeBody.html', function (err, data) { if (err) { res.setHeader('Content-Type', 'text/plain; charset=utf-8') res.end('星際網(wǎng)絡(luò)出故障了,文件讀取不到') } else { // 發(fā)送html文件,需要表示文件頭是 text/html res.setHeader('Content-Type', 'text/html; charset=utf-8') res.end(data) } }) } else if (url === '/photo') { console.log('ETO要看我們的星際環(huán)境,給他們傳送張圖片吧') fs.readFile('./data/threeBody.jpeg', function (err, data) { if (err) { res.setHeader('Content-Type', 'text/plain; charset=utf-8') res.end('星際網(wǎng)絡(luò)出故障了,圖片讀取不到') } else { // 發(fā)送圖片用的是二進(jìn)制格式 res.end(data) } }) } else { res.setHeader('Content-Type', 'text/plain; charset=utf-8') res.end('消息已沉入茫茫宇宙中...') } }) // 自定義端口 let port = 8000 server.listen(port, function () { console.log('與三體的通信又搭建成功,在瀏覽器訪問: http://127.0.0.1:' + port) })
三體通信服務(wù).gif
每次改動服務(wù)端的代碼,都需要重啟服務(wù)
關(guān)于http模塊的api使用說明,詳見 http模塊文檔
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
nodejs報digital?envelope?routines::unsupported錯誤的最新解決方法
這篇文章主要介紹了nodejs報digital?envelope?routines::unsupported錯誤的最新解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-02-02nodejs版本過高導(dǎo)致vue-cli項目無法正常運行的幾種解決方案
這篇文章主要給大家介紹了關(guān)于nodejs版本過高導(dǎo)致vue-cli項目無法正常運行的幾種解決方案,在項目中你可能需要用到的node版本太低,但是你所下的node版本是最新的,這時候就會報錯,需要的朋友可以參考下2023-07-07Node.js中package.json中庫的版本號(~和^)
這篇文章主要介紹了Node.js中package.json中庫的版本號(~和^),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04Linux系統(tǒng)中利用node.js提取Word(doc/docx)及PDF文本的內(nèi)容
這篇文章主要給大家介紹了關(guān)于Linux系統(tǒng)中利用node.js提取Word(doc/docx)及PDF文本的內(nèi)容,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面跟著小編來一起看看吧。2017-06-06詳解使用vscode+es6寫nodejs服務(wù)端調(diào)試配置
本篇文章主要介紹了使用vscode+es6寫nodejs服務(wù)端調(diào)試配置,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09