【问题标题】:gulp-connect and gulp-stubby-server communicationgulp-connect 和 gulp-stubby-server 通信
【发布时间】:2016-12-11 02:48:35
【问题描述】:

我在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'
        }
    });
};

【问题讨论】:

    标签: gulp gulp-connect


    【解决方案1】:

    查看您发布的错误日志:

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

    这是一个 POST 请求,但您只在 mock.json 文件中模拟了 GET 请求。您需要同时允许 POSTGET 请求:

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

    【讨论】:

    • 它没有用。我得到“405 方法不允许错误”。还有一件事,为什么url中的端口号是3006?不应该是 8000,因为那是我的模拟运行的地方。
    • 您不应收到 405 错误。我用您问题中的代码对其进行了测试。如果它不起作用,那么您正在运行的代码与您问题中的代码不同。
    • 此代码与我的环境相同。我不确定是什么问题。我很乐意接受你的回答,但由于它没有解决我的问题,我只投了赞成票。谢谢你帮助我。
    猜你喜欢
    • 2015-02-04
    • 2015-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    • 2015-02-03
    相关资源
    最近更新 更多