2016-12-11 63 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