<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] >[success] # node -- HTTP 模塊 ~~~ 1.引用http 包 -- require('http') ~~~ >[danger] ##### 開啟一個本地服務 ~~~ 1.listen 中有三個參數,第一個是端口號,第二個是指定的ip,第三個是回調 函數,指定ip可以省略,省略后默認location。 2.用兩種創建,一種是傳統的js使用的on事件監聽創建,一種是直接createServer ~~~ * 第一種利用on 監聽request 事件 ~~~ const http = require('http'); // 創建服務器實例對象 let server = http.createServer(); // 綁定請求事件 server.on('request',(req,res)=>{ res.end('hello'); }); // 監聽端口 server.listen(3000); ~~~ * 第二種 ~~~ const http = require('http'); http.createServer((req,res)=>{ // 返回頁面的內容是ok res.end('ok'); }).listen(3000,'192.168.0.106',()=>{ console.log('running...'); }); ~~~ >[danger] ##### req/res--請求響應 路由 ~~~ 1.在server.on('request',(req, res) => {})中回調函數有兩個參數,一個是請 求,一個是響應。他們依次是,req對象是Class: http.IncomingMessage的實 例對象 ,res對象是Class: http.ServerResponse的實例對象 2.req.url -- 獲取請求連接地址,獲取的格式是斜杠開頭類似"/index" 3.req.write -- 寫一個要返回展示的頁面中的內容 4. 響應頭 -- res.writeHead(404,{ 'Content-Type':'text/plain; charset=utf8' }); ~~~ * 簡單的路由映射案例 ~~~ const http = require('http'); // 創建一個server let server = http.createServer(); // 監聽 request 方法 server.on('request',(req, res) => { // req.url 獲取請求連接地址 console.log(req.url); if (req.url.startsWith('/index')) { // req.write 寫一個要返回展示的頁面中的內容 res.write('hello'); res.write('hi'); res.write('nihao'); // end方法用來完成響應,只能執行一次 res.end(); } else if (req.url.startsWith('/about')) { res.end('about'); } else { res.end('no content'); } }); server.listen(3000,()=>{ console.log('啟動成功') }); ~~~ >[success] # 響應網頁請求的案例 ~~~ 1.使用上面http 包 2.配合未見讀寫模塊fs 3.利用path 模塊 4.主要原理,讀取服務器中html文件,然后利用res.end 方法將頁面內容全部返回。 ~~~ >[danger] ##### 案例 ~~~ 1.下面的代碼中html 代碼全部放在了www的文件夾下 2.封裝一個專門用來處理讀取,www文件下對應文件內容的方法 3.在調用的時候傳入對應html 文件的名稱,和響應對象 ~~~ ~~~ const http = require('http'); const fs = require('fs'); const path = require('path'); // 配置全局html 文件處理目錄 let staticPath = path.join(__dirname,'www') // 函數表達式 的方式配合箭頭函數封裝一個html處理方法 let readFileHtml = (url, res) => { fs.readFile(path.join(staticPath,url),'utf8', (err,fileContent)=> { if(err){ res.end('server error') } else{ res.end(fileContent) } }); }; // 創建一個server let server = http.createServer(); // 監聽 request 方法 server.on('request',(req, res) => { if (req.url.startsWith('/index')) { readFileHtml('index.html',res); } else if (req.url.startsWith('/about')) { readFileHtml('about.html',res); } else { res.end('no content'); } }); server.listen(3000,()=>{ console.log('啟動成功') }); ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看