ES6經常使用語法到Node淺談

JS是解釋性語言,因node服務端的應用,而貫通了先後臺。javascript

【ES6】

  1. 關於var和lethtml

    var:前端

    1.var聲明的變量和function聲明的變量總體,會被提高到當前做用域的頂部。
      2.無塊級做用域 
      3.var聲明的變量可重複賦值,即
      var name = 'lin'
      var name = 'li'
      變量提高後
      var name
      name = 'lin'
      name = 'li'
      結果是
      name = 'li'

    let(更嚴謹):java

    1.無變量提高
      2.有塊級做用域
      3.let聲明的變量不可重複賦值,即
      let name = 'lin'
      let name = 'li'
      報錯:
      Uncaught SyntaxError: Identifier 'name' has already been declared
  2. 箭頭函數
    示例:函數去重
    let arr = [1,2,2,3,4]node

    原始寫法:express

    arr.filter(function(value, index, arr){
         return arr.indexOf(value) == index;
    });

    ES6寫法:npm

    arr.filter((v, i, a)=>{
         return a.indexOf(v) == i;
    });

    ES6更簡寫法:canvas

    arr.filter((v, i, a)=> a.indexOf(v) == i); //只有單條返回語句時,return可省
  3. 解構賦值服務器

    clipboard.png

    clipboard.png

  4. Promise(解決嵌套太深問題)
    clipboard.png
  5. 模板字符串mvc

    var obj = {name:'Lin'}
     console.log(`my name is ${obj.name}`)   //my name is Lin

【canvas】

//繪製流程:(聯繫到實際,就是做畫的全過程,這是本質)
   //1.畫板
   let cs = document.querySelector('canvas')
   //2.畫筆(使用2d畫筆)
   let pen = cs.getContext('2d')
   //3.調色
   pen.strokeStyle = 'blue'
   //4.開始
   pen.beginPath()
   //5.繪製(moveTo,lineTo,strokeRect,arc)
   pen.moveTo(10,10)
   pen.lineTo(10,10)
   //6.結束
   pen.stroke()

給canvas背景色,即看到效果

【common.js】

http://javascript.ruanyifeng....

Node 應用由模塊組成,採用 CommonJS 模塊規範。

【node】

node作後臺服務端,處理http請求的代碼,得本身實現了。

實現:
   1.由http模塊,生成server來監聽指定端口
   2.端口鏈接時,觸發回調,比對請求地址後,由fs模塊讀寫文件
   3.處理結果響應給前端

示例:

http.createServer((req,res)=>{
        let pathname = url.parse(req.url).pathname;
        fs.readFile(path.join(process.cwd(),pathname),(err,data)=>{
            res.writeHead(200);
            res.end(data);
        });
   })

【express】

express對http模塊高度封裝
  使後臺得以use中間件方式,區分路由,從而脫離出MVC式的項目結構目錄
  解釋下這裏說起的mvc:
  m model         存放mongoose.model()生成的model
  v view          指定可靜態訪問的目錄
  c controller    存放express.Router()方式處理的中間件,這兒放的是業務邏輯
  路由會單獨提取到一個文件中

示例:

const express = require('express')
const app = express() 

app.use(express.static('./public'))           

app.listen(3000,err =>{
    if(err){
        return console.log('3000端口失敗')
    }
    console.log('3000端口監聽成功')
})

【補充】

1.關於下載
npm會隨着node而安裝,但默認下載地址在國外。爲提升下載速度,可經過nrm來切換鏡像源。

npm i nrm -g
nrm ls
nrm use taobao

clipboard.png

2.關於運行

node index.js           //每次修改代碼,都得手動重啓服務端=>心累
   yarn add nodemon -S     //代碼修改與服務器同步了 ps: yarn的並行下載速度更快
相關文章
相關標籤/搜索