node.js 核心http模塊,起一個服務(wù)器,返回一個頁面的實例
如下所示:
let http=require("http"); //引入核心http模塊 let fs=require("fs"); let mime={ '.js':'application/javascript', '.css':'text/css' } //創(chuàng)建一個函數(shù),req代表客戶端,res代表服務(wù)器可寫流 let listener=(req,res)=>{ //res是可寫流,有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)建一個服務(wù),放入一個監(jiān)聽函數(shù), let server=http.createServer(listener); // server.listen(port,function () { //啟動成功后 console.log(`start${port}`); })
看上面代碼,我們需要先創(chuàng)建三個文件
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ù)端引用路徑不支持相對路徑--> <link rel="stylesheet" href="index.css" rel="external nofollow" > <script src="index.js"></script> </head> <body> <div>你好,帥嗎</div> </body> </html>
我們運行上面js文件時候,就會創(chuàng)建一個靜態(tài)服務(wù)器,端口8080
然后返回客戶端一個index.html文件
瀏覽器渲染這個html文件,我們對應(yīng)的css和js就加載進(jìn)去了
其實上面寫法不是很簡便,node里面有模塊解決路徑獲取后綴名的問題,還有路徑問題
let http=require("http"); //引入核心http模塊 let fs=require("fs"); let mime=require("mime"); //解決文件類型 let url=require("url"); //創(chuàng)建一個函數(shù),req代表客戶端,res代表服務(wù)器可寫流 let listener=(req,res)=>{ //res是可寫流,有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可以通過文件路徑后綴判斷是什么類型的 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)建一個服務(wù),放入一個監(jiān)聽函數(shù), let server=http.createServer(listener); // server.listen(port,function () { //啟動成功后 console.log(`start${port}`); })
以上這篇node.js 核心http模塊,起一個服務(wù)器,返回一個頁面的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- Node.js使用http模塊實現(xiàn)后臺服務(wù)器流程解析
- Node.js?搭建后端服務(wù)器內(nèi)置模塊(?http+url+querystring?的使用)
- Node.js基礎(chǔ)入門之path模塊,url模塊,http模塊使用詳解
- 基于Node.js的http模塊搭建HTTP服務(wù)器
- node.js使用http模塊創(chuàng)建服務(wù)器和客戶端完整示例
- Node.js進(jìn)階之核心模塊https入門
- node.js中http模塊和url模塊的簡單介紹
- Node.js中Request模塊處理HTTP協(xié)議請求的基本使用教程
- Node.js 中 http 模塊的深度剖析與實戰(zhàn)應(yīng)用小結(jié)
相關(guān)文章
Node.js使用SQLite數(shù)據(jù)庫方法大全
Node.js是一種流行的JavaScript運行時,提供了許多有用的模塊和庫來構(gòu)建Web應(yīng)用程序,而SQLite是一種嵌入式關(guān)系型數(shù)據(jù)庫,它可以運行在各種操作系統(tǒng)上,包括Windows、Linux和Mac OS X等,在Node.js中,可以通過安裝sqlite3模塊來訪問SQLite數(shù)據(jù)庫2023-10-10Nodejs中讀取中文文件編碼問題、發(fā)送郵件和定時任務(wù)實例
這篇文章主要介紹了Nodejs中讀取中文文件編碼問題、發(fā)送郵件和定時任務(wù)實例,本文使用了3個模塊來解決這3個需求,并給出了代碼操作實例,需要的朋友可以參考下2015-01-01使用nodeJS中的fs模塊對文件及目錄進(jìn)行讀寫,刪除,追加,等操作詳解
nodeJS中fs模塊對系統(tǒng)文件及目錄進(jìn)行讀寫操作,本文將詳細(xì)介紹nodejs中的文件操作模塊fs的使用方法2020-02-02nodejs使用readline逐行讀取和寫入文件的實現(xiàn)
這篇文章給大家介紹了nodejs使用readline逐行讀取和寫入文件的實現(xiàn)方法,文中通過代碼示例給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-01-01node.js中的http.response.writeHead方法使用說明
這篇文章主要介紹了node.js中的http.response.writeHead方法使用說明,本文介紹了http.response.writeHead的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下2014-12-12