node.js 核心http模塊,起一個(gè)服務(wù)器,返回一個(gè)頁(yè)面的實(shí)例
如下所示:
let http=require("http"); //引入核心http模塊 let fs=require("fs"); let mime={ '.js':'application/javascript', '.css':'text/css' } //創(chuàng)建一個(gè)函數(shù),req代表客戶端,res代表服務(wù)器可寫(xiě)流 let listener=(req,res)=>{ //res是可寫(xiě)流,有write和end if(req.url==="/"){ //設(shè)置編碼 res.setHeader('Content-Type','text/html;charset=utf-8'); fs.createReadStream('index.html').pipe(res); }else{ if(fs.existsSync(`.${req.url}`)) { res.setHeader('Content-Type',mime[req.url.match(/\.\w+$/)[0]] +';charset=utf-8'); fs.createReadStream(`.${req.url}`).pipe(res); }else{ res.statusCode=404; res.end(); } } } let port=8080; //創(chuàng)建一個(gè)服務(wù),放入一個(gè)監(jiān)聽(tīng)函數(shù), let server=http.createServer(listener); // server.listen(port,function () { //啟動(dòng)成功后 console.log(`start${port}`); })
看上面代碼,我們需要先創(chuàng)建三個(gè)文件
index.html
index.css
index.js
html文件里面,我們要引進(jìn)css和js文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!--服務(wù)端引用路徑不支持相對(duì)路徑--> <link rel="stylesheet" href="index.css" rel="external nofollow" > <script src="index.js"></script> </head> <body> <div>你好,帥嗎</div> </body> </html>
我們運(yùn)行上面js文件時(shí)候,就會(huì)創(chuàng)建一個(gè)靜態(tài)服務(wù)器,端口8080
然后返回客戶端一個(gè)index.html文件
瀏覽器渲染這個(gè)html文件,我們對(duì)應(yīng)的css和js就加載進(jìn)去了
其實(shí)上面寫(xiě)法不是很簡(jiǎn)便,node里面有模塊解決路徑獲取后綴名的問(wèn)題,還有路徑問(wèn)題
let http=require("http"); //引入核心http模塊 let fs=require("fs"); let mime=require("mime"); //解決文件類(lèi)型 let url=require("url"); //創(chuàng)建一個(gè)函數(shù),req代表客戶端,res代表服務(wù)器可寫(xiě)流 let listener=(req,res)=>{ //res是可寫(xiě)流,有write和end let {query,pathname}=url.parse(req.url,true); if(pathname==="/"){ //設(shè)置編碼 res.setHeader('Content-Type','text/html;charset=utf-8'); fs.createReadStream('index.html').pipe(res); }else{ if(fs.existsSync(`.${pathname}`)) { //mime 第三方包 npm install mime --save //mime.lookup可以通過(guò)文件路徑后綴判斷是什么類(lèi)型的 res.setHeader('Content-Type', mime.lookup(pathname)+';charset=utf-8'); fs.createReadStream(`.${pathname}`).pipe(res); }else{ res.statusCode=404; res.end(); } } } let port=8080; //創(chuàng)建一個(gè)服務(wù),放入一個(gè)監(jiān)聽(tīng)函數(shù), let server=http.createServer(listener); // server.listen(port,function () { //啟動(dòng)成功后 console.log(`start${port}`); })
以上這篇node.js 核心http模塊,起一個(gè)服務(wù)器,返回一個(gè)頁(yè)面的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Node.js使用http模塊實(shí)現(xiàn)后臺(tái)服務(wù)器流程解析
- Node.js?搭建后端服務(wù)器內(nèi)置模塊(?http+url+querystring?的使用)
- Node.js基礎(chǔ)入門(mén)之path模塊,url模塊,http模塊使用詳解
- 基于Node.js的http模塊搭建HTTP服務(wù)器
- node.js使用http模塊創(chuàng)建服務(wù)器和客戶端完整示例
- Node.js進(jìn)階之核心模塊https入門(mén)
- node.js中http模塊和url模塊的簡(jiǎn)單介紹
- Node.js中Request模塊處理HTTP協(xié)議請(qǐng)求的基本使用教程
- Node.js 中 http 模塊的深度剖析與實(shí)戰(zhàn)應(yīng)用小結(jié)
相關(guān)文章
Node.js使用SQLite數(shù)據(jù)庫(kù)方法大全
Node.js是一種流行的JavaScript運(yùn)行時(shí),提供了許多有用的模塊和庫(kù)來(lái)構(gòu)建Web應(yīng)用程序,而SQLite是一種嵌入式關(guān)系型數(shù)據(jù)庫(kù),它可以運(yùn)行在各種操作系統(tǒng)上,包括Windows、Linux和Mac OS X等,在Node.js中,可以通過(guò)安裝sqlite3模塊來(lái)訪問(wèn)SQLite數(shù)據(jù)庫(kù)2023-10-10Nodejs中讀取中文文件編碼問(wèn)題、發(fā)送郵件和定時(shí)任務(wù)實(shí)例
這篇文章主要介紹了Nodejs中讀取中文文件編碼問(wèn)題、發(fā)送郵件和定時(shí)任務(wù)實(shí)例,本文使用了3個(gè)模塊來(lái)解決這3個(gè)需求,并給出了代碼操作實(shí)例,需要的朋友可以參考下2015-01-01淺談Koa2框架利用CORS完成跨域ajax請(qǐng)求
這篇文章主要介紹了淺談Koa2框架利用CORS完成跨域ajax請(qǐng)求,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03使用nodeJS中的fs模塊對(duì)文件及目錄進(jìn)行讀寫(xiě),刪除,追加,等操作詳解
nodeJS中fs模塊對(duì)系統(tǒng)文件及目錄進(jìn)行讀寫(xiě)操作,本文將詳細(xì)介紹nodejs中的文件操作模塊fs的使用方法2020-02-02nodejs使用readline逐行讀取和寫(xiě)入文件的實(shí)現(xiàn)
這篇文章給大家介紹了nodejs使用readline逐行讀取和寫(xiě)入文件的實(shí)現(xiàn)方法,文中通過(guò)代碼示例給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-01-01在koa中簡(jiǎn)單使用Websocket連接的方法示例
本文主要介紹了在koa中簡(jiǎn)單使用Websocket連接的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02node.js中的http.response.writeHead方法使用說(shuō)明
這篇文章主要介紹了node.js中的http.response.writeHead方法使用說(shuō)明,本文介紹了http.response.writeHead的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12