node 常用模塊


  像在服務器上的操作,我們只要 require 引入的模塊,只要不是 nodejs 中的模塊,我們的下載環境都是開發環境    

  配置自動化:引用插件 nodemon

    下載:npm i nodemon -g   // 最好全局安裝

    作用:之前,當我們改服務器的內容的時候,我們需要關閉服務器重新打開后,才能看到我們更改的內容;很不方便

       所以,他的作用就是,當我們改服務器的東西,只要 ctrl+s 保存后,服務器的東西自動更改,省的我們關閉服

       務器,然后在開啟服務器這樣子

    使用方法:nodemon "文件名"  // 之前都是 node "文件名" 來開啟服務器,現在使用他即可

  模板引擎:引用插件 ejs  render 方法的使用  及 引用文件 renderFile 方法的使用 

    下載:npm i ejs 

    作用:之前我們用的 underscore 里面的 template 特別爽,模板的寫法,現在 nodejs 也為我們提供了跟 underscore

       一樣的東西,我們可以 <% js代碼 %>  <%=引入數據 %>

    使用方法:  render() 第一個參數(必填):模板內容  第二個參數(必填):對象傳參

      第一種:

        let ejs = require("ejs");

        let st = "hello";

        let dt = "<%=data %>world";

        let ft = ejs.render(dt,{data:st})

        console.log(ft)   // 打印的結果就是 helloworld

      第二種:

        let ejs = require("ejs");

        let st = {data:hello};

        let dt="<%=data %>world";

        let ft=ejs.render(dt,st);  

        console.log(ft)  // 打印的結果就是 helloworld

      以上這兩種寫法的區別,相信大家也看到了,就是 ejs.render() 中 第二個參數 必須是一個對象,只不過這個對象是什么時候寫而已;

    renderFile() 的使用方法  將 文件 模板進行傳參  有三個參數  第一個:文件  第二個:傳參  第三個:回調函數

    我們在一個 ejs 文件上寫上內容    

      

    看到沒,與我們的 html 文件類型一致,然后,我們需要進行的操作 就是將 數據傳給 data,最終將內容展示出來

    

    res.write()  往響應體里面些東西

    中間件:兩個同樣的功能,誰在前執行誰

    路由:對網址的偽裝(我的理解)

      我們作為一個老實人,就會把具體的文件地址暴露出來,但是這樣不好,別人也可以通過文件地址來訪問我們的東西,包括秘密的文件,這當

    然不是一個好事情,所以我們需要對網址進行處理,讓他們不再通過網絡地址也能訪問我們的內容,這樣一來,問題就解決了,老板也會加個雞腿

    案例:

    

    我們在 a.html 的內容是這樣的

     

    來吧,讓我們看看效果

    

    路由傳參

      我們在網址上是這樣寫的:http://127.0.0.1:3000/a/12  (俗稱:前端的請求)

      但是后台的匹配模式是這樣的:"/a/:id"  這樣的寫法,我們通過 req.params 得到的結果為 id=12

    但是:以上的寫法:會不會顯得 low , 

  所以:讓我們來使用高大上的東西:express 插件  這樣的插件:使我們少寫很多東西之外呢,也會讓我們寫的簡單了不少;

    下載: npm i express --save  

       他的功能也是特別強大,我們來看一看吧

    第一個創建服務器:

      let express = require("express");

      let app = express()

      app.listen(3000)    // 這樣我們便配好了一個 localhost:3000 的服務器

    第二個:創建根目錄

      app.use(express.static("./www"));  // 這樣我們就創建了一個 www 的根目錄,且不需要我們在進行文件處理,因為 express 已經幫我們處理好了

    第三個:路由:

      說路由之前,我們先來說說前台的東西

      1. app.get()  代表所有 get 方式發送的請求,都有它來接收

      2. app.post()  代表所有 post 方式發送的請求,都有它來接收

      3. app.all()  不管是 get 方式,還是 post 方式,都可以接收他的請求

      對於請求的解析也是一件特別注意的事情

      如 get 方式 獲取的參數

      這種方式

        let url = require("url");

        let querystring = require("querystring");  //  將網絡地址參數進行解析

        let obj = url.parse(req.url)  // 這個是解析網絡地址的,在上面的路由案例出現過 

        let query = obj.query;    // 這里我們便能得到傳參的字符串形式

        let cont = querystring.parse(query)  // 這里我們就可以將字符串形式轉化成對象的形式

      get 方式通過 url 傳輸,只要我們將 url 種的 query 解析成對象,就可以獲取參數  

      說實話,get 是 最簡單的 ,post 可能需要處理的東西多一點;

      post 解析:需要下載插件 body-parser 且跟網絡地址沒有關系 

      下載:npm i body-parser --save

      這種方式

        let bodyParser = require("body-parser");

        let urlencodedParser bodyParser.urlencoded({ extendedfalse })

        app.post('/login', urlencodedParserfunction (reqres{
            console.log(req.body)  // 這里面就是 post 請求的內容
        })
    接下來,我們看看 express 的路由實現,是多么幸福的一件事
      

    接下來實現路由傳參

      

   效果圖

    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM