1. 程式人生 > >移動端網路除錯 基於express的JsServerDemo

移動端網路除錯 基於express的JsServerDemo

  1. 用途 作為自己mock測試伺服器
  2. 可以簡單的模擬各種請求資料
  3. 可以結合Charles 攔截代理,將線上環境的資料完整替換為本地的資料,可以方便模擬除錯各種情形

1. 啟動mock的JsServer

node .\bin\www 

2. 用法 結合Charles

  • Charles 的 Map 功能分 Map Remote 和 Map
    Local兩種,前者是將制定的網路請求重定向到另一個網址,MapLocal 是將指定的網路請求重定向到本地檔案。
  • . 本次直接使用charles的MapRemote功能,將charles 配置map Remote 配置參考如下:
router.all('/test', function (req, res, next) {

    console.log(req)

    res.set({
        'Content-Length': '123',
    })


    res.sendFile('JsServertest.json', {root: path.join(__dirname, '../public/res')});
    // res.render('index', { title: 'Express' });
})

結合以上步驟 可以方便將app內網路請求轉換成任意自己想要修改的資料演示 修改本地的(public/res/JsServertest.json)原介面響應結果

  • postman請求 http://115.159.24.246:8080/JsServertest.json返回資料已經被修改為

  • 不僅僅是可以修改返回的response的body內容還可以根據需要任意修改返回的header資訊

router.all('/trade/go', function (req, res) {
    console.log(req.headers)

    /*
    HTTP/1.1 200 OK
     Server nginx
     Date   Mon, 19 Jun 2017 02:35:26 GMT
     Cache-Control  no-store
     Content-Type   text/xml;charset=UTF-8
     Content-Encoding   gzip
     Vary   Accept-Encoding
     Pragma no-cache
     Set-Cookie JSESSIONID=43E6672555D36EAB234DB20C53828DD0; Path=/; HttpOnly
     THE-TIME   Monday, 19-Jun-2017 10:35:27 CST
     Transfer-Encoding  chunked
     Proxy-Connection   Keep-alive
     */
var date= new Date() res.set({ 'Content-Type': 'text/json;charset=UTF-8', 'Content-Length': '123', 'Date': date.toDateString() }) res.sendFile('JsServertest.json', {root: path.join(__dirname, '../public/res')}); });