开发者

Node.js will create file but not write to it using the following code. node-186364e.exe on windows xp

var
http = require('http'),
fs = require('fs'),
buffer,
working = 'notworking',
options = {
        host: '202.138.228.141',
        port: 8080,
        path: 'www.google.com'
};

http.get(options, function(res) {

        if (res.statusCode < 400) working = 'working';
        writeResults(options);

}).on('error', function (e) {

        writeResults(options);

});

function writeResults (options) {
        buffer = '\n' +开发者_JAVA技巧 options.host + ':' + options.port + ':' + working;
        fs.open('results.ht', 'a', function (err, fd) {
                fs.write(fd, buffer, function (e, written, buf) {
                        fs.closeSync(fd);
                });
        });
}


If you want to write the data from the http.get, you'd do:

http.get(options, function(res) {
    var data = '';
    res.on('data', function(d) {
        data += d;
    });
    res.on('end', function(e) {
        writeResults(options, working, data);
    });
}).on('error' function(e) {
   writeResults(options, 'ERROR', null);
});

then maybe change writeResults to:

function writeResults(options, working, data) {
    buffer = '\n' + options.host + ':' + options.port + ':' + working;
    if (data) {
        buffer += '\n' + data;
    }
    fs.open('results.ht', 'a', function (err, fd) {
        fs.write(fd, buffer, function (e, written, buf) {
            fs.closeSync(fd);
        });
    });
};
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜