Ubuntu的DNS问题。 Url请求在MacOSX中正常工作,但在Ubuntu中失败

时间:2015-03-16 22:22:51

标签: javascript node.js ubuntu travis-ci

已编写调用require('request').post()的nodeJS script。这个脚本在MacOSX(Travis)中工作正常但在Ubuntu(Travis)中失败了。还对NodeJS的“https”模块进行了测试,以消除可能导致错误的无关变量。然而,这也不起作用。

/**
* Upload the data to the coverage server
*/
exports.upload = function (data, callback) {
    var url = SERVER + '/v1/coverage';
    request.post(url, {
        form : {
        type : 'grunt-appc-coverage',
        data: data
        },
        json: true,
        agentOptions: false
    }, function (err, response, body) {
        console.log(err, response, body);
        ....
        return callback(null, SUCCESS_UPLOAD);
    });
};

这是我从Ubuntu的日志中得到的。

REQUEST make request https://coverage.appcelerator.com/v1/coverage

{ [Error: getaddrinfo ENOTFOUND coverage.appcelerator.com]

code: 'ENOTFOUND',

errno: 'ENOTFOUND',

syscall: 'getaddrinfo',

hostname: 'coverage.appcelerator.com' } undefined undefined

结果可以在这里看到   - Ubuntu   - MacOSX(无法发布链接)

1 个答案:

答案 0 :(得分:0)

我不认为CNAME符合规范:

$ dig +short coverage.appcelerator.com
https://454bcc35e4c9b0c030c89b311b4322330d84fa3b.cloudapp-enterprise.appcelerator.com.
ec2-54-244-121-14.us-west-2.compute.amazonaws.com.
54.244.121.14
$

看起来很破碎。具体来说,第一个CNAME看起来很糟糕:它的值应该是域名,而不是URL。

...还是我没跟上DNS? :)

ETA:不,我已经检查了一些资源,他们同意CNAME必须拥有域名,而不是其他任何内容。所以,是的,DNS记录需要被合理的替换。