7

Currently, I have the following block of code:

net = require('net');
var clients = [];

net.createServer(function(s) {

  clients.push(s);

  s.on('data', function (data) {
    clients.forEach(function(c) {
      c.write(data);
    });
    process.stdout.write(data);//write data to command window
  });

  s.on('end', function() {
    process.stdout.write("lost connection");
  });

}).listen(9876);

Which is used to set up my Windows computer as a server and receive data from my linux computer. It is currently writing data to the command window. I would like to write the data into a text file to specific location, how do i do this?

Luzan Baral
  • 3,510
  • 5
  • 36
  • 65
FWing
  • 73
  • 1
  • 1
  • 3

2 Answers2

6

Use the fs module to deal with the filesystem:

var net = require('net');
var fs = require('fs');
// ...snip
s.on('data', function (data) {
  clients.forEach(function(c) {
    c.write(data);
  });

  fs.writeFile('myFile.txt', data, function(err) {
    // Deal with possible error here.
  });
});
SomeKittens
  • 37,637
  • 19
  • 110
  • 141
4

You should read up on the File System support in node.js.

The following method is probably the simplest way to do what you want, but it is not necessarily the most efficient, since it creates/opens, updates, and then closes the file every time.

function myWrite(data) {
    fs.appendFile('output.txt', data, function (err) {
      if (err) { /* Do whatever is appropriate if append fails*/ }
    });
}
cybersam
  • 59,023
  • 5
  • 47
  • 70