Node.js —— 兩種方式傳送單頁面
阿新 • • 發佈:2018-12-12
1、安裝socket.io和express和生成package.json
npm install socket.io --save
npm install --save express
nam init
2、app.js
const express = require('express'); const app = express(); // 建立一個express程式,賦值給app。 const fs = require('fs'); // 這個是node的檔案讀取模組,用於讀取檔案 const path = require('path'); // 這是node的路徑處理模組,可以格式化路徑 app.listen(3000,()=>{ // ()=>是箭頭函式,ES6語法,相當於 function() console.log("server running at 127.0.0.1:3000"); // 監聽3000埠,然後執行回撥函式在控制檯輸出。 }); /** * app.get(): express中的一箇中間件,用於匹配get請求,所謂中介軟體就是在該輪http請求中依次執行的一系列函式。 * '/': 它匹配get請求的根路由 '/'也就是 127.0.0.1:3000/就匹配到他了 * (req,res): ES6語法的箭頭函式,你暫時可以理解為function(req,res){}。 * req帶表瀏覽器的請求物件,res代表伺服器的返回物件 */ app.get('/',(req,res)=>{ res.redirect('/chat.html'); // express的重定向函式。如果瀏覽器請求了根路由'/',瀏覽器就給他重定向到 '127.0.0.1:3000/chat.html'路由中 });
第一種傳送方式
app.get('/chat.html',function (req,res) { fs.readFile(path.join(__dirname,'/chat.html'),function(err,data){ //讀取檔案,readFile裡傳入的是檔案路徑和回撥函式,這裡用path.join()格式化了路徑。 if(err){ console.error("讀取chat.html發生錯誤",err); //錯誤處理 res.send('4 0 4'); //如果發生錯誤,向瀏覽器返回404 } else { res.end(data); //這裡的data就是回撥函式的引數,在readFile內部已經將讀取的資料傳遞給了回撥函式的data變數。 } //我們將data傳到瀏覽器,就是把html檔案傳給瀏覽器 }) });
第二種傳送方式
/** * __dirname表示當前檔案所在的絕對路徑,所以我們使用path.join將app.js的絕對路徑和public加起來就得到了public的絕對路徑。 * 用path.join是為了避免出現 ././public 這種奇怪的路徑 * express.static就幫我們託管了public資料夾中的靜態資源。 * 只要有 127.0.0.1:3000/XXX/AAA 的路徑都會去public資料夾下找XXX資料夾下的AAA檔案然後傳送給瀏覽器。 */ app.use('/',express.static(path.join(__dirname,'./public')));