Я только начал с node.js и наткнулся на appendFile, который добавляет содержимое в конец файла, но когда я его выполняю, мой идентификатор кода полностью заменяет содержимое данными.

Вот код.

var http = require('http');
    var file = require('fs');
    http.createServer(function (req, res) {
      res.writeHead(200, {'Content-Type': 'text/html'});
      var fd = file.open('default.html','w',function(err){
        if(err)throw err;
    });
    file.appendFile('default.html',"<p>Hi,this to inform you that i really don't care</p>",function(err){});
      return res.end();
    }).listen(8080);

Файл по умолчанию

 <!doctype>
<html lang="en">
<head>
    <title>File</title>
</head>
<body>
    <h1>
        Hi, EveryOne
    </h1>
</html>

Вывод, который я получаю,

<p>Hi,this to inform you that i really don't care</p>

Кто-нибудь может сказать мне, почему это происходит или что я делаю не так?

0
Dark_thunder 9 Ноя 2018 в 08:30

1 ответ

Лучший ответ

Потому что вы открыли файл в 'w', то есть в режиме записи, а затем выполнили операцию с ним. Вам действительно не нужно открывать файл перед добавлением к нему.

var fd = file.open('default.html','w',function(err){
        if(err)throw err;
    });

Я не вижу, что вы с ним делаете что-нибудь полезное, поэтому этот код не нужен. Если вам это нужно, откройте файл в режиме добавления, заменив 'w' на 'a', и не забудьте закрыть файл.

Однако, как я уже сказал, вы можете просто добавить, используя метод, а не открывать файл.

1
Avij 9 Ноя 2018 в 06:34