2016-12-11 93 views
0

我在gulp-connectgulp-stubby-server之間進行通信時遇到問題。吞吐連接和吞吐服務器 - 粗短服務器通信

gulp-connect在端口3006上運行,而stubby在端口8000上運行,但不知何故它試圖連接到僅在端口3006上的stubby,並且出現404錯誤。我已經完成代理中間件配置,將路徑/my-server的所有請求重定向到短粗服務器,但似乎無法正常工作。我在這裏錯過了什麼?

angular.js:12185 POST http://localhost:3006/my-server/services/getTestData 404(未找到)

var configuration = { 
    myProxy: _.extend(url.parse('http://localhost:8000/my-server/'), {route: '/my-server'}) 

} 
gulp.task('static', function() { 
    connect.server({ 
     root: ['target'], 
     port: 3006, 
     livereload: false, 
     middleware: function() { 
      return [ 
       proxy(configuration.myProxy) 
      ]; 
     } 
    }); 
}); 

gulp.task('stubby', function (cb) { 
    var options = { 
     files: [ 
      'mocks/test/*.{json,yaml,js}' 
     ], 
     callback: function (server, options) { 
      server.get(1, function (err, endpoint) { 
       if (!err) { 
        console.log(endpoint); 
       } 
      }); 
     }, 
     stubs: 8000, 
     tls: 8443, 
     admin: 8010 

    }; 
    stubby(options, cb); 
}); 

樣品mock.json

{ 
    "request" : { 
    "url": "^/my-server/services/getTestData$", 
    "method": "GET" 
    }, 
    "response":{ 
    "status" : 200, 
    "headers" :{ 
     "Content-Type" : "application/json" 
    }, 
    "latency" : 1000, 
    "body" : "Some Test Data" 
    } 

} 

資源

var testResource = function($resource , CONS){ 
    console.log('test resource'); 

    var requestURL = '/my-server/services/getTestData'; 
    return $resource(requestURL , {},{ 
     getTestData: { 
      method: 'POST' 
     } 
    }); 
}; 

回答

1

查看錯誤日誌中,您發佈的評論:

angular.js:12185 POST http://localhost:3006/my-server/services/getTestData 404(未找到)

這是一個POST請求,但你只嘲笑在GET請求你的mock.json文件。您需要同時允許POSTGET請求:

{ 
    "request" : { 
    "url": "^/my-server/services/getTestData$", 
    "method": ["GET", "POST"] 
    }, 
    "response":{ 
    "status" : 200, 
    "headers" :{ 
     "Content-Type" : "application/json" 
    }, 
    "latency" : 1000, 
    "body" : "Some Test Data" 
    } 
} 
+0

它沒有工作。我得到'405方法不允許錯誤'。還有一件事,爲什麼url中的端口號是3006?不應該是8000,因爲那是我的模擬運行的地方。 – user911

+0

你不應該得到405錯誤。我用你的問題中的代碼對它進行了測試。如果它不起作用,那麼您運行的代碼與您問題中的代碼不同。 –

+0

此代碼與我的環境相同。我不確定是什麼問題。我很樂意接受你的回答,但由於它不能解決我的問題,所以我只提供了upvoted。感謝你們對我的幫助。 – user911