Menulis data ke file teks di Node.js [duplikat]

Saat ini, saya memiliki blok kode berikut:

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);

Yang digunakan untuk mengatur komputer Windows saya sebagai server dan menerima data dari komputer linux saya. Saat ini sedang menulis data ke jendela perintah. Saya ingin menulis data ke dalam file teks ke lokasi tertentu, bagaimana cara melakukannya?


person FWing    schedule 01.04.2014    source sumber
comment
Perhatikan bahwa Java tidak sama dengan JavaScript; Node.js adalah JavaScript sisi server.   -  person dimo414    schedule 02.04.2014
comment
itu sebabnya saya bilang di newbie tentang ini, saya tahu tentang java :(   -  person FWing    schedule 02.04.2014
comment
Untungnya bahasa yang Anda gunakan adalah JavaScript, Anda tidak perlu tahu apa pun tentang Java.   -  person dimo414    schedule 02.04.2014


Jawaban (2)


Gunakan modul fs untuk menangani sistem file:

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.
  });
});
person SomeKittens    schedule 01.04.2014
comment
Secara default, writeFile() akan menimpa apa pun yang sudah ada di file, jadi jawaban ini hanya akan menyisakan item 'data' terakhir di file. - person cybersam; 02.04.2014
comment
nah, inilah yang ingin saya lakukan, menulis data secara berlebihan, dan membiarkan data terbaru hanya dalam file teks. - person FWing; 02.04.2014
comment
Namun, masalah yang saya alami saat ini adalah, saya tidak mengalami kesalahan apa pun, tetapi saya tidak dapat mengarsipkan file .txt bahkan dengan fungsi pencarian di windows :/ - person FWing; 02.04.2014
comment
@FWing File txt harus berada di direktori tempat Anda menjalankan node - person SomeKittens; 02.04.2014
comment
oh baiklah, terima kasih, saya mengerti, tidak yakin mengapa fungsi pencarian tidak berfungsi - person FWing; 02.04.2014
comment
Tidak masalah. Jangan lupa untuk upvote/menerima! - person SomeKittens; 02.04.2014

Anda harus membaca tentang dukungan Sistem File di node.js.

Metode berikut mungkin adalah cara paling sederhana untuk melakukan apa yang Anda inginkan, namun belum tentu yang paling efisien, karena metode ini membuat/membuka, memperbarui, dan kemudian menutup file setiap saat.

function myWrite(data) {
    fs.appendFile('output.txt', data, function (err) {
      if (err) { /* Do whatever is appropriate if append fails*/ }
    });
}
person cybersam    schedule 01.04.2014
comment
apakah saya harus bersiap ketika menemui kesalahan? aku tidak tahu apa yang harus kulakukan? - person FWing; 02.04.2014
comment
Anda bisa saja menampilkan kesalahan ke konsol, jika Anda tidak tahu harus berbuat apa lagi. Misalnya: console.error(Gagal mengeluarkan data. Data: %s, Kesalahan: %s, data, err); - person cybersam; 02.04.2014
comment
masalah yang sama di sini, saya tidak memiliki kesalahan apa pun, tetapi saya tidak dapat menemukan file saya, saya tidak yakin apakah kodenya berfungsi - person FWing; 02.04.2014
comment
Anda dapat secara eksplisit menentukan jalur lengkap untuk file tersebut, sehingga Anda tahu ke mana perginya. - person cybersam; 02.04.2014
comment
ya, aku berhasil, terima kasih banyak! - person FWing; 02.04.2014
comment
Direktori default adalah direktori yang menyimpan kode node.js Anda. - person cybersam; 02.04.2014
comment
@FWing: Sama-sama! Mohon Terima juga jawaban saya jika menurut Anda itu yang terbaik. Terima kasih. - person cybersam; 02.04.2014