nodejs web伺服器建立

迷糊的小崽子發表於2020-12-06

1、引入http模組

let http = require(‘http’)

2、建立web服務 返回http物件

let app = http.createServer((req,res)=>{
req 請求體 瀏覽器->伺服器
req.url 地址 提取位址列資料

req.on('data') 提取非位址列資料 所有的http[s]都會觸發end事件
req.on('end')

res 響應  伺服器->瀏覽器
res.writeHead(200,{'Content-Type':'text/html;charset=utf-8'});響應頭設定
res.write(字元/資料<string><buffer>) 返回資料
res.end() 結束響應 必須 })

3、監聽

app.listen(埠,[地址],[回撥])

案例:

et http = require('http')//commonJs模組化輸入模組的方法

//建立web服務   返回http物件

// http.createServer(函式)  建立一個server物件,未來有人訪問時,函式就會呼叫,返回server物件
let app = http.createServer(()=>{
  console.log('有人訪問了,就呼叫')
})

// 監聽伺服器
// app.listen(埠,主機地址,成功回撥)

app.listen('3000','127.0.0.1',()=>{
  console.log("伺服器跑起來了")
})

請求體,響應體所攜帶的api

let http = require('http')//commonJs模組化輸入模組的方法

//建立web服務   返回http物件

// http.createServer(函式)  建立一個server物件,未來有人訪問時,函式就會呼叫,返回server物件
let app = http.createServer((req,res)=>{
  console.log('有人訪問了,就呼叫')

  console.log('抓取位址列資訊',req.url)

  //響應
  // res.writeHead(200,{'Content-Type':'text/html;charset=utf-8'});

  //返回是字元
  res.write(`
    <html>
      <head>
        <meta charset="utf-8">
        <title>第一個node伺服器返回的網頁</title>
      </head>
      <body>
        <h1>後燒肉</h1>
      </body>
    </html>
  
  `);
  res.end();//結束響應

})

// 監聽伺服器
// app.listen(埠,主機地址,成功回撥)

app.listen('3000','127.0.0.1',()=>{
  console.log("伺服器跑起來了")
})

fs模組_磁碟檔案的操作

1、讀取:
fs.readFile(‘檔案路徑’,[編碼方式],(err,data)=>{})
err :錯誤,null沒有錯誤 data :資料,buffer流
變數 = fs.readFileSync(‘檔案路徑’)

//讀取靜態資源  file system 模組

let fs = require('fs');

//檔案操作  的結果 都是 "非同步" 的

//讀

  // fs.readFile('地址',[編碼格式預設是流],回撥(失敗,資料))
  /* fs.readFile('./www/index.html',(err,data)=>{
  // fs.readFile('./www/index.html','utf-8',(err,data)=>{
    // console.log(err);//null 沒有錯誤
    console.log(data);//資料  流
  }) */

  // let data = fs.readFileSync('./www/index.html');
  // console.log(data);


  //同步寫非同步的寫法, 校驗他的錯誤時 
  try{
    let data = fs.readFileSync('./www/index1.html');
    console.log(data);
  }catch(e){}

  console.log('後續程式碼')


  // try ...catch

  //原生js  try..catch 用法,用來應急

  /* try{
    //測試3000行程式碼
    console.log(1);
    doc.a.b();
    console.log(2);
    
  }catch(e){
    //  處理錯誤,保證不掛起
    // console.log('catch',e)
  }


  console.log(3); */


//更名

// fs.rename('改前','改後',回撥)
// fs.rename('./www/default.html','./www/index.html',err=>console.log(err))

fs.rename('./www/index.html','./wwww/index2.html',err=>console.log(err))
// let  正確結果 = fs.renameSync('改前','改後')
// let result = fs.renameSync('./www/index.html','./www/default.html');
// console.log(result);


//刪除
// fs.unlinkSync('./www/a.txt');

try … catch 用法,用來應急的

try ...catch:當不確定哪一個階段出錯,可以放在try後面出錯後用catch來處理,保證正確的能執行

try{
    要排錯的程式碼
}catch{
    處理錯誤,保證不掛起
}

相關文章