您好,登錄后才能下訂單哦!
如下所示:
let http=require("http"); //引入核心http模塊 let fs=require("fs"); let mime={ '.js':'application/javascript', '.css':'text/css' } //創建一個函數,req代表客戶端,res代表服務器可寫流 let listener=(req,res)=>{ //res是可寫流,有write和end if(req.url==="/"){ //設置編碼 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; //創建一個服務,放入一個監聽函數, let server=http.createServer(listener); // server.listen(port,function () { //啟動成功后 console.log(`start${port}`); })
看上面代碼,我們需要先創建三個文件
index.html
index.css
index.js
html文件里面,我們要引進css和js文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!--服務端引用路徑不支持相對路徑--> <link rel="stylesheet" href="index.css" rel="external nofollow" > <script src="index.js"></script> </head> <body> <div>你好,帥嗎</div> </body> </html>
我們運行上面js文件時候,就會創建一個靜態服務器,端口8080
然后返回客戶端一個index.html文件
瀏覽器渲染這個html文件,我們對應的css和js就加載進去了
其實上面寫法不是很簡便,node里面有模塊解決路徑獲取后綴名的問題,還有路徑問題
let http=require("http"); //引入核心http模塊 let fs=require("fs"); let mime=require("mime"); //解決文件類型 let url=require("url"); //創建一個函數,req代表客戶端,res代表服務器可寫流 let listener=(req,res)=>{ //res是可寫流,有write和end let {query,pathname}=url.parse(req.url,true); if(pathname==="/"){ //設置編碼 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; //創建一個服務,放入一個監聽函數, let server=http.createServer(listener); // server.listen(port,function () { //啟動成功后 console.log(`start${port}`); })
以上這篇node.js 核心http模塊,起一個服務器,返回一個頁面的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。